Выбрать главу
Переименование и перемещение файлов

Команда mv перемещает или переименовывает файлы. Например:

$ mv file.txt file2.txt

Данная команда переименовывает файл file.txt в файл file2.txt. Можно также перемещать файлы в другой каталог:

$ mv ~/*.txt /tmp

Эта команда перемещает все текстовые файлы из домашнего каталога пользователя в каталог /tmp.

Будьте очень осторожны при использовании команды mv: при перемещении она не предупреждает о существовании файла-назначения и если таковой существует, то он будет перезаписан.

Удаление файла и каталога

Для удаления указанного файла используется команда rm. Например:

$ rm file2.txt

При этом для удаления файла пользователь должен иметь право на запись в каталог. Права на чтение или запись файла необязательны. Если нет права на запись в файл, то выдается (в восьмеричном виде) режим доступа к файлу и запрашивается подтверждение на удаление. Если стандартный вывод назначен не на терминал, то команда rm будет вести себя так же, как при наличии опции –f. А при указании опции –f не выдается предупреждений, если удаляемый файл не существует, а также не запрашивается подтверждение при удалении файла, на запись в который нет прав. Если нет права и на запись в каталог, то файлы не удаляются. Сообщение об ошибке выдается лишь при попытке удалить каталог, на запись в который нет прав.

Опция –r предназначена для рекурсивного удаления всех файлов и каталогов, указанных в командной строке. При удалении непустых каталогов команда rm с параметром –r предпочтительнее, чем команда rmdir, поскольку последняя не может удалить непустой каталог.

Опция –i аналогична одноименной опции команды cp и требует подтверждения от пользователя перед удалением каждого файла.

Быстрый поиск файла

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

$ locate passwd

Поиск программы

Если вы не знаете, в каком каталоге находится нужная вам команда (программа), введите команду which, указав в качестве параметра нужную вам команду (программу).

$ which awk

Данная команда бывает очень полезна в тех случаях, когда вы хотите узнать, установлена ли вообще та или иная программа. Быстрый поиск имени программы можно выполнить прямо из командной строки Linux: для этого введите первые буквы нужной вам команды и нажмите «Tab». Такая функция называется автозаполнением командной строки. Для вывода всех доступных команд нажмите «Tab» дважды. Естественно, что полный список команд на одном экране не поместится. Чтобы «листать» консоль, используйте клавиши «PageUp» и «PageDown».

4.2.2. Команды для работы с каталогами

Просмотр содержимого каталога

Для просмотра содержимого каталога используется команда ls. Закоренелые пользователи DOS могут использовать привычную им команду dir, но команда Is намного удобнее. Программа ls имеет около сорока параметров, о назначении которых вы можете узнать в справочной системе, введя команду man ls.

Вывод имени текущего каталога

Команда pwd сообщит вам имя текущего каталога. Эту команду очень удобно использовать при написании сценариев.

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

Как и в DOS, для создания каталога используется команда mkdir, а для удаления — rmdir. При удалении каталога нужно учитывать то, что удаляемый каталог должен быть пуст. В противном случае команда заявит о своем бессилии.

Смена каталога

Команда cd сменяет текущий каталог на указанный.

Файловый менеджер Midnight Commander

Для вызова Midnight Commander введите команду mc. Естественно, пакет mc должен быть предварительно установлен. Midnight Commander очень похож на всем известный Norton Commander, так что я не буду здесь подробно останавливаться на описании данной программы (см. рис. 4.2).

Рис. 4.2. Midnight Commander

4.3.Ссылки

Иногда очень полезно, чтобы в каталоге находился один и тот же файл, но под разными именами. Можно просто скопировать этот файл в другой, но при этом неэффективно используется дисковое пространство. Для этих целей в ОС Linux существует специальный тип файлов — ссылки. Ссылки позволяют хранить один и тот же файл, но под разными именами. Linux поддерживает два типа ссылок: жесткие (прямые) и символические.

Жесткие ссылки

Каждый файл в файловой системе Linux имеет свой индекс. Индекс — это уникальный номер файла. Получить информацию обо всех индексах в текущем каталоге можно с помощью команды Is –i. Исходя из принятых положений можно дать более точное определение каталога: каталог — это просто список индексов файлов. Допустим, у нас есть файл text. Просмотрим его индекс:

ls –i text

25617 text

Теперь создадим жесткую ссылку на файл text командой In:

ln text words

Обратите внимание, что ссылка words на файл text имеет тот же индекс, что и файл text:

ls –i words

25617 words

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

Командой In можно создать множество ссылок на один файл и все они будут иметь один и тот же индекс.

Изменяя файл words, вы автоматически измените файл text. Удаляя файл words, вы можете удалить и файл text, но только в том случае, когда на него нет больше ссылок. В противном случае удалению подлежит только ссылка. Количество ссылок отображается по команде Is –l. Число, стоящее слева от имени владельца, и есть количеством ссылок. При этом доступны две ссылки на каталоги: "." – ссылка на текущий каталог, а ".." – на родительский.