1. Операции с файлами

Все ваши данные: офисные документы, песни, фильмы и так далее, содержатся в файлах. Мы представим некоторые команды для организации этих файлов и управления ими.

1.1. Вывод содержимого каталога

ls ( LiSt) эквивалентна DOS-овской команде dir. Синтаксис ее таков:

ls 
      <каталог> 

Часто используемые опции:

  • -R: выводить содержимое каталога и всех его подкаталогов рекурсивно. Обратите, пожалуйста, внимание, что перед отображением содержимого каталога выводится имя самого каталога.

  • -l: использовать подробный формат вывода. Отображается детальная информация о файле: тип файла, права доступа, владелец и размер.

  • -a: показывать также скрытые файлы. В системах UNIX ®, все файлы с именами, начинающимися с точки ( .), являются скрытыми. Эта опция используется, чтобы вывести такие файлы при отображении содержимого каталога. Если вы не хотите, чтобы выводились ссылки на текущий и родительский каталоги ( . и .., соответственно), пользуйтесь опцией -A.

Примеры:

  • ls -lA /tmp/movies /tmp/images: выводит содержимое каталогов movies и images, находящихся в каталоге /tmp, отображая скрытые файлы и детальную информацию, но не выводя пункты . и ..;

  • ls -R ~/: вывести, рекурсивно, все файлы и каталоги, которые располагаются внутри вашего домашнего каталога.

1.2. Копирование

cp ( CoPy) эквивалентна командам copy и xcopy DOS'а, но имеют больше опций. Ее синтаксис следующий:

      cp  <файл|каталог> [file|directory
      ...] <назначение>

Часто используемые опции:

  • -R: рекурсивное копирование; обязательна для копирования каталога, даже если он пуст.

  • -f: заменять имеющиеся файлы без запроса подтверждения. Пользуйтесь ею с осторожностью.

  • -a: архивный режим, сохраняет все атрибуты файлов для копии и производит рекурсивное копирование.

  • -v: подробный режим, выдает все действия, совершаемые командой cp.

Примеры:

  • cp -f /tmp/images/* images/: копирует все файлы каталога /tmp/images в каталог images, расположенный в текущем каталоге. Если какой-то файл при этом перезаписывается, то запрос не выдается.

  • cp -vR docs/ /shared/mp3s/* mystuff/: копирует весь каталог docs, и все файлы из каталога /shared/mp3s в каталог mystuff, выводя все производимые действия.

  • cp foo bar: в текущем каталоге создает копию файла foo под именем bar.

1.3. Перемещение

mv ( MoVe) эквивалентна DOS-овской команде move. Синтаксис:

      mv  <файл|каталог> [file|directory
      ...] <назначение>

Обратите внимание, что при перемещении нескольких файлов назначение должно быть каталогом. При переименовании файла он просто перемещается в файл с новым именем.

Часто используемые опции:

  • -f: принудительная операция. Если перезаписывается существующий файл, не выдается никаких предупреждений. Пользуйтесь с осторожностью.

  • -v: verbose-режим, докладывает о всех изменениях и действиях.

Примеры:

  • mv /tmp/pics/*.png .: переместить все файлы из каталога /tmp/pics, чьи имена заканчиваются на .png, в текущий каталог.

  • mv foo bar: переименовать файл foo в bar. Если при этом существует каталог bar, то в результате действия этой команды файл foo или весь каталог foo (сам каталог, а также все файлы и каталоги внутри него, рекурсивно) поместится в каталог bar.

  • mv -vf file* images/ trash/: переместить, без запроса на перезапись, все файлы из текущего каталога, чьи имена начинаются на file, вместе со всем каталогом images в каталог trash, и вывести каждую произведенную операцию.

1.4. Удаление

Команда rm ( ReMove) эквивалентна DOS-овским командам del и deltree, но имеет больше опций. Ее синтаксис следующий:

      rm  <файл|каталог>
      

Часто используемые опции:

  • -r, или -R: удалять рекурсивно. Эта опция является обязательной при удалении каталогов, как пустых, так и непустых. Однако для удаления пустых каталогов вы также можете пользоваться командой rmdir.

  • -f: принудительное удаление файлов или каталогов. Используйте эту опцию с осторожностью.

Примеры:

  • rm images/*.jpg file1: удаляет все файлы с именами, заканчивающимися на .jpg из каталога images и удаляет file1 из текущего каталога.

  • rm -Rf images/misc/ file*: удаляет, не спрашивая подтверждения, весь каталог misc их каталога images, вместе со всеми файлами текущего каталога, чьи имена начинаются на file.

[Внимание] Внимание

Команда rm удаляет файлы безвозвратно. Легкого пути восстановить их не существует! Будьте особенно внимательны при использовании опции -f, при которой пропускается запрос на удаление, а не то удалите что-нибудь по ошибке.

1.5. Создание каталога

mkdir ( MaKe DIRectory) эквивалентна командам DOSmkdir и md. Ее синтаксис таков:

mkdir <каталог>
      

Только опция -p достойна упоминания. Она выполняет две вещи:

  1. создает вышележащие каталоги, если до применения команды они не существовали. Без этой опции, mkdir просто не выполнится, пожаловавшись, что эти каталоги не существуют;

  2. тихо завершается, в том случае, когда каталог, который вы хотите создать, уже существует. Если опция -p не указана, mkdir возвращает сообщение об ошибке, пожаловавшись, что этот каталог уже существует.

Примеры:

  • mkdir foo: создает каталог foo в текущем каталоге;

  • mkdir -p images/misc: создает каталог misc в каталоге images, в случае отсутствия последнего он тоже будет создан.

1.6. Смена рабочего каталога

Текущий рабочий каталог, обозначаемый точкой ( .) - то место файловой системы, где вы «находитесь». Двойная точка ( ..) обозначает каталог, родительский для текущего, который расположен «одним уровнем выше» в иерархии файловой системы.

cd ( Change Directory) позволяет вам перемещаться по файловой системе. Она имеет следующий синтаксис:

cd
      <каталог>

Примеры:

  • cd /tmp/images: смена текущего каталога на каталог images, расположенный внутри каталога /tmp;

  • cd -: смена текущего каталога на предыдущий рабочий каталог;

  • cd: смена текущего каталога на домашний каталог;

  • cd ~/images: смена текущего каталога на каталог images, расположенный внутри вашего домашнего каталога.