Командная строка Linux
Шрифт:
rm *.html
которая сделает именно то, что вам нужно, но если вы случайно вставите пробел между * и .html, как в следующей команде:
rm * .html
rm удалит все файлы в каталоге и затем сообщит, что не нашла файла .html.
Полезный совет: всякий раз, используя групповые символы с командой rm (помимо внимательной проверки ввода!), проверьте сначала аргумент с групповым символом с командой ls. Это позволит увидеть, какие файлы будут удалены. Затем нажмите клавишу со стрелкой вверх, чтобы восстановить команду из истории, и замените ls
Таблица 4.9. Примеры использования команды rm
Команда
Результат
rm file1
Просто удалит файл file1
rm -i file1
Перед удалением file1 запросит подтверждение у пользователя
rm -r file1 dir1
Удалит файл file1 и каталог dir1 со всем его содержимым
rm -rf file1 dir1
То же, что и выше, но в отсутствие file1 и/или dir1 просто продолжит работу, не выводя никаких сообщений
ln — создание ссылок
Команда ln применяется для создания жесткой или символической ссылки. Ее можно использовать одним из двух способов:
ln файл ссылка
создает жесткую ссылку.
ln -s элемент ссылка
создает символическую ссылку, где элементом может быть файл или каталог.
Жесткие ссылки
Жесткие ссылки — это первоначальный способ создания ссылок в Unix; символические ссылки — более позднее изобретение. По умолчанию каждый файл имеет одну жесткую ссылку, определяющую его имя. Создавая жесткую ссылку, мы создаем дополнительную запись в каталоге для файла. Жесткие ссылки имеют два важных ограничения.
• Жесткая ссылка не может указывать на файл за пределами собственной файловой системы. Это означает, что ссылка не может указывать на файл, находящийся в другом разделе диска.
• Жесткая ссылка не может указывать на каталог.
Жесткая ссылка неотличима от самого файла. В отличие от символических ссылок, при выводе списка с содержимым каталогов жесткие ссылки никак не выделяются. При удалении жесткой ссылки удаляется только сама ссылка, а файл остается на месте (то есть пространство, занимаемое файлом, не освобождается), пока не будут удалены все жесткие ссылки на файл.
Знать о существовании жестких ссылок важно, потому что они будут встречаться вам время от времени, но в современной практике предпочтение отдается символическим ссылкам, о которых рассказывается далее.
Символические ссылки
Символические ссылки были придуманы с целью преодолеть ограничения жестких ссылок. Когда создается символическая ссылка, в действительности создается файл особого типа, содержащий текстовый указатель на файл или каталог. В некотором отношении они действуют подобно ярлыкам в Windows, но, конечно
Файл, на который указывает символическая ссылка, и сама символическая ссылка почти неотличимы друг от друга. Например, если попытаться что-то записать в символическую ссылку, запись будет выполнена в файл, на который она указывает. Однако при удалении символической ссылки удаляется только символическая ссылка, но не файл. Если удалить файл до того, как будет удалена символическая ссылка, ссылка останется на месте, но будет указывать в никуда. О таких ссылках говорят, что они «битые». Во многих реализациях команда ls выделяет битые ссылки цветом, например, красным, чтобы обратить на них внимание.
Идея ссылок может показаться странной и непонятной, но оставьте ее пока. Мы опробуем их на практике, и многое, возможно, для вас прояснится.
Давайте построим песочницу
Поскольку мы собираемся на практике опробовать некоторые операции с файлами, давайте выделим безопасный уголок для «игр» с командами управления файлами. Прежде всего нам понадобится каталог, в котором мы будем практиковаться. Создайте такой каталог в своем домашнем каталоге и назовите его playground.
Создание каталогов
Для создания каталогов используется команда mkdir. Чтобы создать каталог playground, проверьте сначала, находитесь ли вы в домашнем каталоге, и только потом создайте новый каталог:
[me@linuxbox ~]$ cd
[me@linuxbox ~]$ mkdir playground
Чтобы немножко украсить вашу песочницу, создайте внутри playground пару каталогов с именами dir1 и dir2. Для этого смените текущий рабочий каталог на playground и выполните еще одну команду mkdir:
[me@linuxbox ~]$ cd playground
[me@linuxbox playground]$ mkdir dir1 dir2
Обратите внимание, что команда mkdir может принимать несколько аргументов, это позволяет создать два каталога одной командой.
Копирование файлов
Далее, добавим немного данных в нашу песочницу. Для этого скопируем какие-нибудь файлы. Командой cp скопируйте файл passwd из каталога /etc в текущий рабочий каталог.
[me@linuxbox playground]$ cp /etc/passwd .
Обратите внимание на сокращение, обозначающее текущий рабочий каталог, — точку в конце команды. Если после этого выполнить команду ls, мы увидим наш файл:
[me@linuxbox playground]$ ls -l
итого 12
drwxrwxr-x 2 me me 4096 2012-01-10 16:40 dir1
drwxrwxr-x 2 me me 4096 2012-01-10 16:40 dir2
– rw-r--r-- 1 me me 1650 2012-01-10 16:07 passwd
Теперь ради развлечения повторите операцию копирования, но на этот раз с параметром -v, чтобы посмотреть, как она работает: