Основные команды для работы с файлами Печать
Статьи - Основы UNIX

Основные команды для работы с файлами

Команды для работы с файловой системой

Просмотр файловой системы - ls

Команда ls (list files) предназначена для просмотра содержимого каталогов и получения информации о файлах.

Примеры:

$ ls
$ ls -a
$ ls /bin
$ ls -l /
$ ls -l /dev
$ ls -l ..
$ ls -a .

Определение текущего каталога — pwd

pwd (print working directory) показывает текущий рабочий каталог.

Смена текущего каталога — cd

cd (change directory) меняет текущий рабочий каталог. Если команда cd вызвана без параметров, происходит переход в домашний каталог пользователя. Команда cd позволяет вернуться в предыдущий каталог (каталог, откуда был осуществлен переход в текущий).

Примеры:

$ cd /usr
$ cd bin
$ cd ..
$ cd
$ cd ~
$ cd ~u1

Создание файла с помощью команды touch

Команда touch меняет временные метки файла и имеет побочное действие, которое используется гораздо чаще, чем основное – если файла с указанным именем нет, создается пустой файл.

Создание каталога — mkdir

Команда mkdir (make directory) создает каталоги, в том числе и промежуточные (если указана опция -p).

Примеры:

$ mkdir /tmp/test
$ mkdir ~p /tmp/a/b/c

Удаление файла — rm

Команда rm удаляет файлы и каталоги, в т.ч. каталоги с содержимым (опция r или R). Опция f подавляет вывод запросов (например, при удалении файлов, доступных только для чтения) и ошибок при удалении, а опция i выводит запрос при удалении каждого файла.

Примеры:

$ touch /tmp/test
$ rm -r /tmp/test
# rm -fr /*

Удаление каталога — rmdir

Команда rmdir удаляет только пустые каталоги. При использовании опции p удаляются и родительские каталоги целевого каталога, если они пусты.

Примеры:

$ rmdir /tmp/test
$ rmdir -p /tmp/a/b/c

Копирование файлов и каталогов — cp

Команда cp позволяет копировать файли и каталоги (опция r или R). При её использовании часто применяются шаблоны шелла. В общем случае, команда cp требует не менее двух параметров: что копировать и куда копировать. Команда cp имеет большое количество опций, подробно о которых можно узнать на странице man.

Примеры:

$ touch file1
$ mkdir dir1
$ cp file1 file2
$ cp file1 incorrectdirname
$ cp file1 dir1/
$ cp -r dir1/ dir2/

Перемещение и переименование файлов и каталогов — mv

Команда mv предназначена для перемещения и переименования файлов и каталогов. При перемещении внутри одного каталога имя исходного файла/каталога меняется на новое, что эквивалентно переименованию. При перемещении внутри одного раздела (одной файловой системы) меняется только жесткая ссылка на объект и процесс перемещения происходит очень быстро. При перемещении данных между различными файловыми системами происходит копирование с последующим удалением источника, так что время выполнения команды зависисит от объема данных.

Примеры:

$ mv file2 file3
$ mv dir2 dir3
$ mv file3 incorrectdirname
$ mv file3 dir1/
$ mv dir3 dir1/

Создание линков/ссылок на файлы и каталоги - ln

Команда ln позволяет создавать символьные (с опцией s) и жесткие (без опции s) ссылки.

Примеры:

$ ln -s /etc/rc.conf file4

$ mkdir -p ~/var/db/mysql
$ touch ~/var/db/mysql/file.db

$ mkdir ~/disk2
$ mv ~/var/db/mysql ~/disk2/

$ ln -s ~/disk2/mysql/ ~/var/db/mysql
$ ls ~/var/db/mysql/

Команды для работы с содержимым файлов

Определение типа файла — file

Команда file представляет собой интерфейс к системе magic, который доступен пользователю в виде обычной команды.

Примеры:

$ file /usr/sbin/adduser
$ file /bin/sh
$ file /usr/share/man/man1/cat.1.gz

Просмотр файлов — more/less

Пейджеры (pager) more или less используются для просмотра больших объемов текстовой информации страницами. Они позволяют осуществлять навигавицию, поиск по тексту и некоторые другие действия с помощью команд. Получить помощь по этим командам всегда можно, нажав клавишу h. Выход из пейджера осуществляется с помощью команды q. Поиск информации осуществляется с помощью команд / (вперед) и ? (назад), после которых указывается шаблон для поиска. Для получения подробной справки обратитесь к соответствующей странице справочного руководства.

Примеры запуска:

$ more /etc/defaults/rc.conf
$ less /etc/defaults/rc.conf

Работа с архивами

UNIX обладает богатым арсеналом средств резервного копирования и восстановления данных: программы dump/restore, cpio, tar и пр. Для работы архивами наиболее широко используется программа tar. Несмотря на то, что в разных системах UNIX используются различные реализации этой программы, получающиеся в результате архивы являются кроссплатформенными, т. е. могут быть обработаны в разных ОС (в т.ч. и Windows). Ниже приведены примеры работы с программой tar:

Создать архив:

$ tar -c -v -f имяфайлаархива.tar каталогилифайл ...

Посмотреть содержимое архива:

$ tar -t -f имяфайлаархива.tar

Раскрыть архив целиком:

$ tar -x -v -f имяфайлаархива.tar

Раскрыть отдельные файлы:

$ tar -xf имяфайлаархива.tar 'etc/fstab' $ tar -xOf имяфайлаархива.tar 'etc/fstab' - вывести на экран(STDOUT) $ tar -xf имяфайлаархива.tar 'etc/' $ tar -xf имяфайлаархива.tar '*fstab*'

Дополнительные ключи:

-z использовать gzip сжатие
-j использовать bzip2 сжатие

Команды оценки использования дискового пространства

Статистика использования разделов — df

Для получения статистики использования разделов дисков (смонтированных файловых систем) используется команда df. Наиболее полезные опции здесь – h (human-readable, выводит числовые данные в виде, удобном для восприятия пользователем) и t (выводит информацию только о файловых системах указанного типа, не принимая во внимание остальные – например, виртуальные файловые системы).

Пример запуска программы:

$ df -h -t ufs
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 434M 143M 256M 36% /
/dev/ad0s1e 403M 12K 371M 0% /tmp
/dev/ad0s1f 6.4G 427M 5.5G 7% /usr
/dev/ad0s1d 771M 304K 709M 0% /var

Размер каталога — du

Программа du (disk usage) позволяет получить статистику использования дискового пространства не по разделам целиком, а для конкретных указанных каталогов. Опция h здесь аналогична этой опции программы df, а опции s (summary) и d число (depth) позволяют указать необходимую степень подробности (глубину) выводимой информации. Опция s эквивалента опции d 0 (нулевая глубина погружения), причем эти опции нельзя указывать вместе.

Примеры использования:

$ du -s -h /usr/share/
$ du -d 1 /usr/share/

Команды поиска файлов

Метоположение программ — which и whereis

Для поиска программ (исполняемых файлов) в UNIX используется команда which, которая ищет указанные файлы в каталогах, перечисленных в переменной окружения PATH. Команда whereis аналогична по действию, но ищет также среди man страниц и в каталогах с исходными текстами программ.

Примеры:

$ which ls
/bin/ls

$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

Поиск файлов по индексированной базе — locate

Поиск файлов по имени с помощью заранее созданной индексной базы данных используется программа locate. Для создания индексной базы используется программа /usr/libexec/locate.updatedb

Полный поиск файлов - find

Программа find обладает большими возможностями для указания атрибутов искомых объектов и позволяет осуществлять поиск с самыми разными параметрами. Подробную информацию можно получить на странице справки.

Примеры использования find:

Поиск по имени и по шаблону имени

$ find /usr/share -name index.html
$ find /usr/share -name '*.html'

Поиск файлов, которые модифицировались за последние 2 дня и вывод полной информации про них

$ find /var/log -ctime -2 -type f -ls

Поиск файлов более новых чем некоторый

$ touch -t 200901051230 /tmp/xtime
$ find /etc/ -newer /tmp/xtime -type f

Пример выполнения команд над найденными файлами

# find /usr/ports/ -name '*.tbz' -exec mv {} /usr/ports/packages/All/ \;