- Работа с файлами и каталогами в Linux
- Навигация
- Поиск своего местоположения
- Перемещение по файловой системе
- Просмотр содержимого каталогов
- Просмотр содержимого файлов
- Поиск файлов
- Основные операции с файлами и каталогами
- Создание файла
- Создание каталога
- Удаление файлов и каталогов
- Перемещение и переименование
- Копирование
- Размер файлов и директорий
- Отображение размера директории в конкретных единицах измерения
- Редактирование файлов
- Копирование и вставка
- Поиск и замена
- Сохранение и выход из редактора
- Размеры папок и дисков в Linux. Команды df и du
- Свободное место на диске (df)
- Опция -h
- Размер конкретного диска
- Размер папок на диске (du)
- Размер конкретной папки:
- Размеры файлов и папок внутри конкретной папки:
- How do I determine the total size of a directory (folder) from the command line?
Работа с файлами и каталогами в Linux
Если у вас нет большого опыта работы с системами Linux, вы можете быть очень удивлены возможностями управления операционной системой из командной строки. Понимание принципов работы через консоль пригодится и для управления домашним компьютером, например, с ОС Ubuntu, и для администрирования серверов cloud.timeweb.com с установленными Unix-подобными системами. В этой статье мы попытаемся ознакомить вас с основами. Это руководство должно дать вам необходимый минимум знаний и хорошую отправную точку для дальнейших исследований.
Навигация
Наиболее фундаментальные навыки, которыми вам необходимо овладеть, — это перемещение по файловой системе и получение представления о том, что находится вокруг вас. В этом разделе мы обсудим инструменты, которые позволят вам это сделать.
Поиск своего местоположения
После того как вы подключаетесь к своему серверу, вы обычно попадаете в домашний каталог вашей учетной записи пользователя (если не применены нестандартные настройки). Домашняя директория — это директория, которая используется для хранения пользовательских файлов, например документов, фото, видео-файлов. В этой директории вы имеете полные права для совершения любых действий, таких как создание, перемещение, удаление файлов и директорий. Чтобы узнать, где находится домашний каталог пользователя, используйте команду pwd (сокращение от print working directory). Эта команда выведет путь до каталога, в котором вы находитесь в данный момент:
В ответ вы должны получить строку, которая выглядит похожим образом:
Название домашней директории пользователя совпадает с именем его учетной записи. Этот каталог находится внутри каталога /home , который, в свою очередь, сам расположен внутри каталога верхнего уровня, который называется root , но обозначается одной косой чертой / .
Перемещение по файловой системе
Часто вам может понадобиться изменить текущий рабочий каталог, чтобы получить доступ к другим подкаталогам и файлам.
Чтобы изменить текущий каталог , в linux используется команда cd (сокращение от change directory), за которой, в качестве аргумента, следует имя каталога, относительно текущего:
или абсолютный (полный) путь:
Чтобы вернуться на уровень выше, в родительскую директорию, можно в качестве аргумента передать команде cd две точки:
Чтобы вернуться в домашний каталог пользователя, нам не обязательно передавать полный путь к нему, вместо этого можно использовать короткую запись, передав в качестве аргумента символ «тильда»:
Чтобы перейти в корневой каталог:
Просмотр содержимого каталогов
Теперь, когда мы знаем, как перейти в нужный нам каталог и отобразить путь до него, пришло время разобраться, как просмотреть содержимое каталога . Чтобы это сделать, в linux используется команда ls (сокращение от list):
В ответ мы увидим список файлов и директорий:
addresses.txt Documents Downloads grades.txt
Чтобы посмотреть содержимое каталога, надо передать путь до него:
Чтобы вывести список всех файлов в подкаталогах, используйте флаг -R :
Так же в linux-команде ls можно передать дополнительные флаги. Например, чтобы вывести подробную информацию о содержимом каталога, такую как права доступа, дату последнего изменения, можно использовать команду:
Чтобы увидеть скрытые файлы и директории (обычно их имена начинаются с точки) нужно использовать флаг -a . Флаги можно комбинировать друг с другом, например:
Просмотр содержимого файлов
Для вывода содержимого файла в терминал, используется команда cat (сокращение от concatenate). В качестве аргумента ей необходимо передать имя файла в текущем каталоге или путь до него:
cat file1.txt
cat /home/demo/file2.txt
Поиск файлов
Иногда вам может понадобиться найти местоположение определенного файла. Поиск файла в linux легко можно сделать с помощью команд find или locate .
Команда find ищет файл в определенном месте и принимает два аргумента: путь до директории , в которой нужно произвести поиск, и имя файла, который нужно найти. Для того, чтобы поискать файл с именем file1.txt в домашней директории пользователя demo, команда будет выглядеть следующим образом:
find /home/demo -name file1.txt
Команда locate , как и команда find , выполняет поиск файлов, но принимает только один аргумент. Команда locate ищет все возможные файлы и каталоги с заданным именем в системе:
Основные операции с файлами и каталогами
Создание файла
Чтобы создать файл в linux , мы можем воспользоваться командой touch . Например, чтобы создать файл с именем file1.txt в домашней директории пользователя, введите в терминале команду:
Создание каталога
Для того, чтобы создать папку в linux , используется команда mkdir (сокращение от make directory). В качестве аргумента передайте имя директории или путь, по которому хотите ее создать:
Удаление файлов и каталогов
Удаление файла в linux осуществляется при помощи команды rm (сокращение от remove).
Для удаление каталога используется эта же команда rm , но с флагом -r :
rm /home/demo/file1.txt
rm -r /home/demo/Photos
Используйте эту команду с осторожностью, так как ее действие необратимо.
Перемещение и переименование
Для того, чтобы переместить, или переименовать файл в linux используется универсальная команда mv (сокращение от move).
В зависимости от того, как она используется, она может переименовывать файл или перемещать его из одного места в другое. Команда для перемещения файла будет выглядеть так:
mv file1.jpeg /home/demo/Photos/
Для переименования файла из file1.txt в file2.txt используется следующая запись:
Кроме того, вы можете одновременно перемещать и переименовывать файл, указав папку назначения и новое имя файла:
mv file1.txt /home/demo/Documents/file2.txt
Копирование
Команда cp (сокращение от copy), копирует файл из одного места в другое. В отличие от команды mv , используемой для перемещения, команда cp сохраняет исходный файл в его текущей директории и создает копию в другой директории . Команда для копирования файла с именем file1.txt в каталог /home/demo/Documents будет выглядеть так:
cp file1.txt /home/demo/Documents
cp /home/demo/Ptotos/photo1.jpeg /home/demo/Documents
Если вы хотите скопировать директорию, то необходимо использовать флаг -R :
cp -R /home/demo/tutorilas /home/demo/Documents/
Размер файлов и директорий
В linux размер папки можно узнать при помощи команды du (сокращенно от disk utility). Если ввести эту команду без аргументов, то она выведет размеры всех файлов внутри текущей директории . Обычно, в качестве аргумента ей передают путь до директории , размер которой необходимо узнать, и флаги -sh для более красивого и читаемого вывода:
Если мы хотим увидеть размер и состояние конкретного диска, то можно использовать команду df с флагом -h , и названием раздела, который хотим увидеть:
Отображение размера директории в конкретных единицах измерения
По умолчанию команда du отображает размер каталога в байтах. Если нам вдруг потребуется отображать размер файлов и каталогов в килобайтах или мегабайтах, используется эта же команда du , но к ней необходимо будет добавить флаг -k (килобайты) или -m (мегабайты).
Для того, чтобы установить отображение использования дискового пространства в килобайтах для нашей директории demo, введите:
В таком случае будет отображаться использование дискового пространства директорией, но не размер ее файлов.
Чтобы узнать размеры ее файлов, нам понадобится флаг -a .
Редактирование файлов
Для того, чтобы отредактировать файлы, можно воспользоваться встроенным в linux консольным редактором nano.
Чтобы открыть файл с именем file1.txt, введите:
После этого откроется окно с редактором, в котором вы можете приступить к редактированию.
Копирование и вставка
Для того чтобы вырезать строку и поместить ее в буфер обмена, переместите курсор на нужную строку и нажмите Ctrl+K.
Чтобы вставить строку из буфера, нажмите Ctrl+U.
Чтобы скопировать текст произвольной длины, сначала требуется его выделить. Для этого поместите курсор на начало текста, который планируется копировать, и нажмите Ctrl+6. Перемещайте курсор, текст будет выделяться.
Чтобы скопировать выделенный текст в буфер обмена, нажмите Alt+6.
Чтобы вырезать выделенный текст, нажмите Ctrl+K.
Поиск и замена
Для поиска используйте комбинацию клавиш Ctrl+W, затем введите поисковый запрос и нажмите Enter. Курсор переместится к первому найденному совпадению. Чтобы продолжить поиск до следующего совпадения, используйте комбинацию Alt+W.
Сохранение и выход из редактора
Если вы хотите сохранить текущие изменения в файле, нажмите комбинацию клавиш Ctrl+O. Если вы редактируете новый файл, вам будет предложено дать ему имя. Это сохранит текущие изменения, при этом nano останется открытым и вы сможете продолжить работу.
Если вы хотите выйти из редактора нажмите комбинацию клавиш Ctrl+X.
Размеры папок и дисков в Linux. Команды df и du
Рассмотрим, как используя команды df и du просматривать свободное место на дисках и размеры папок в Linux.
Свободное место на диске (df)
Для просмотра свободного и занятого места на разделах диска в Linux можно воспользоваться командой df.
Первым делом можно просто ввести команду df без каких-либо аргументов и получить занятое и свободное место на дисках. Но по умолчанию вывод команды не очень наглядный — например, размеры выводятся в КБайтах (1К-блоках).
df Файл.система 1K-блоков Использовано Доступно Использовано% Cмонтировано в udev 1969036 0 1969036 0% /dev tmpfs 404584 6372 398212 2% /run /dev/sda9 181668460 25176748 147240368 15% / . /dev/sda1 117194136 103725992 13468144 89% /media/yuriy/5EB893BEB893935F /dev/sda6 144050356 121905172 14804772 90% /media/yuriy/2f24. d9075
Примечание: df не отображает информацию о не смонтированных дисках.
Опция -h
Опция -h (или —human-readable) позволяет сделать вывод более наглядным. Размеры выводятся теперь в ГБайтах.
df -h Файл.система Размер Использовано Дост Использовано% Cмонтировано в udev 1,9G 0 1,9G 0% /dev tmpfs 396M 6,3M 389M 2% /run /dev/sda9 174G 25G 141G 15% / . /dev/sda1 112G 99G 13G 89% /media/yuriy/5EB893BEB893935F /dev/sda6 138G 117G 15G 90% /media/yuriy/2f24. d9075
Размер конкретного диска
Команде df можно указать путь до точки монтирования диска, размер которого вы хотите вывести:
df -h /dev/sda9 Файл.система Размер Использовано Дост Использовано% Cмонтировано в /dev/sda9 174G 25G 141G 15% /
Размер папок на диске (du)
Для просмотра размеров папок на диске используется команда du.
Если просто ввести команду без каких либо аргументов, то она рекурсивно проскандирует вашу текущую директорию и выведет размеры всех файлов в ней. Обычно для du указывают путь до папки, которую вы хотите проанализировать.
Если нужно просмотреть размеры без рекурсивного обхода всех папок, то используется опция -s (—summarize). Также как и с df, добавим опцию -h (—human-readable).
Размер конкретной папки:
du -sh ./Загрузки 3,4G ./Загрузки
Размеры файлов и папок внутри конкретной папки:
du -sh ./Загрузки/* 140K ./Загрузки/antergos-17.1-x86_64.iso.torrent 79M ./Загрузки/ubuntu-amd64.deb 49M ./Загрузки/data.zip 3,2G ./Загрузки/Parrot-full-3.5_amd64.iso 7,1M ./Загрузки/secret.tgz
How do I determine the total size of a directory (folder) from the command line?
The -h flag on sort will consider «Human Readable» size values.
If want to avoid recursively listing all files and directories, you can supply the —max-depth parameter to limit how many items are displayed. Most commonly, —max-depth=1
du -h --max-depth=1 /path/to/directory
I use du -sh or DOOSH as a way to remember it (NOTE: the command is the same, just the organization of commandline flags for memory purposes)
There is a useful option to du called the —apparent-size. It can be used to find the actual size of a file or directory (as opposed to its footprint on the disk) eg, a text file with just 4 characters will occupy about 6 bytes, but will still show up as taking up ~4K in a regular du -sh output. However, if you pass the —apparent-size option, the output will be 6. man du says: —apparent-size print apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be larger due to holes in (‘sparse’) files, internal fragmentation, indirect blocks
This works for OS X too! Thanks, I was really looking for a way to clear up files, both on my local machine, and my server, but automated methods seemed not to work. So, I ran du -hs * and went into the largest directory and found out which files were so large. This is such a good method, and the best part is you don’t have to install anything! Definitely deserved my upvote
@BandaMuhammadAlHelal I think there are two reasons: rounding ( du has somewhat peculiar rounding, showing no decimals if the value has more than one digit in the chosen unit), and the classical 1024 vs. 1000 prefix issue. du has an option -B (or —block-size ) to change the units in which it displays values, or you could use -b instead of -h to get the «raw» value in bytes.