Основные команды для работы с файлами |
Статьи - Основы UNIX |
Основные команды для работы с файламиКоманды для работы с файловой системойПросмотр файловой системы - lsКоманда ls (list files) предназначена для просмотра содержимого каталогов и получения информации о файлах. Примеры: $ ls Определение текущего каталога — pwdpwd (print working directory) показывает текущий рабочий каталог. Смена текущего каталога — cdcd (change directory) меняет текущий рабочий каталог. Если команда cd вызвана без параметров, происходит переход в домашний каталог пользователя. Команда cd позволяет вернуться в предыдущий каталог (каталог, откуда был осуществлен переход в текущий). Примеры: $ cd /usr Создание файла с помощью команды touchКоманда touch меняет временные метки файла и имеет побочное действие, которое используется гораздо чаще, чем основное – если файла с указанным именем нет, создается пустой файл. Создание каталога — mkdirКоманда mkdir (make directory) создает каталоги, в том числе и промежуточные (если указана опция -p). Примеры: $ mkdir /tmp/test Удаление файла — rmКоманда rm удаляет файлы и каталоги, в т.ч. каталоги с содержимым (опция r или R). Опция f подавляет вывод запросов (например, при удалении файлов, доступных только для чтения) и ошибок при удалении, а опция i выводит запрос при удалении каждого файла. Примеры: $ touch /tmp/test Удаление каталога — rmdirКоманда rmdir удаляет только пустые каталоги. При использовании опции p удаляются и родительские каталоги целевого каталога, если они пусты. Примеры: $ rmdir /tmp/test Копирование файлов и каталогов — cpКоманда cp позволяет копировать файли и каталоги (опция r или R). При её использовании часто применяются шаблоны шелла. В общем случае, команда cp требует не менее двух параметров: что копировать и куда копировать. Команда cp имеет большое количество опций, подробно о которых можно узнать на странице man. Примеры: $ touch file1 Перемещение и переименование файлов и каталогов — mvКоманда mv предназначена для перемещения и переименования файлов и каталогов. При перемещении внутри одного каталога имя исходного файла/каталога меняется на новое, что эквивалентно переименованию. При перемещении внутри одного раздела (одной файловой системы) меняется только жесткая ссылка на объект и процесс перемещения происходит очень быстро. При перемещении данных между различными файловыми системами происходит копирование с последующим удалением источника, так что время выполнения команды зависисит от объема данных. Примеры: $ mv file2 file3 Создание линков/ссылок на файлы и каталоги - lnКоманда ln позволяет создавать символьные (с опцией s) и жесткие (без опции s) ссылки. Примеры: $ ln -s /etc/rc.conf file4 Команды для работы с содержимым файловОпределение типа файла — fileКоманда file представляет собой интерфейс к системе magic, который доступен пользователю в виде обычной команды. Примеры: $ file /usr/sbin/adduser Просмотр файлов — more/lessПейджеры (pager) more или less используются для просмотра больших объемов текстовой информации страницами. Они позволяют осуществлять навигавицию, поиск по тексту и некоторые другие действия с помощью команд. Получить помощь по этим командам всегда можно, нажав клавишу h. Выход из пейджера осуществляется с помощью команды q. Поиск информации осуществляется с помощью команд / (вперед) и ? (назад), после которых указывается шаблон для поиска. Для получения подробной справки обратитесь к соответствующей странице справочного руководства. Примеры запуска: $ more /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 сжатие Команды оценки использования дискового пространстваСтатистика использования разделов — dfДля получения статистики использования разделов дисков (смонтированных файловых систем) используется команда df. Наиболее полезные опции здесь – h (human-readable, выводит числовые данные в виде, удобном для восприятия пользователем) и t (выводит информацию только о файловых системах указанного типа, не принимая во внимание остальные – например, виртуальные файловые системы). Пример запуска программы: $ df -h -t ufs Размер каталога — duПрограмма du (disk usage) позволяет получить статистику использования дискового пространства не по разделам целиком, а для конкретных указанных каталогов. Опция h здесь аналогична этой опции программы df, а опции s (summary) и d число (depth) позволяют указать необходимую степень подробности (глубину) выводимой информации. Опция s эквивалента опции d 0 (нулевая глубина погружения), причем эти опции нельзя указывать вместе. Примеры использования: $ du -s -h /usr/share/ Команды поиска файловМетоположение программ — which и whereisДля поиска программ (исполняемых файлов) в UNIX используется команда which, которая ищет указанные файлы в каталогах, перечисленных в переменной окружения PATH. Команда whereis аналогична по действию, но ищет также среди man страниц и в каталогах с исходными текстами программ. Примеры: $ which ls Поиск файлов по индексированной базе — locateПоиск файлов по имени с помощью заранее созданной индексной базы данных используется программа locate. Для создания индексной базы используется программа /usr/libexec/locate.updatedb Полный поиск файлов - findПрограмма find обладает большими возможностями для указания атрибутов искомых объектов и позволяет осуществлять поиск с самыми разными параметрами. Подробную информацию можно получить на странице справки. Примеры использования find: Поиск по имени и по шаблону имени $ find /usr/share -name index.html Поиск файлов, которые модифицировались за последние 2 дня и вывод полной информации про них $ find /var/log -ctime -2 -type f -ls Поиск файлов более новых чем некоторый $ touch -t 200901051230 /tmp/xtime Пример выполнения команд над найденными файлами # find /usr/ports/ -name '*.tbz' -exec mv {} /usr/ports/packages/All/ \; |