4.9. Работа с файлами в командной строке

Манипулировать файлами можно при помощи одного из графических файловых менеджеров, например, Наутилус или Konqueror. Кроме того, это можно делать из командной строки, и это будет даже быстрее. Эта глава разъясняет, как именно работать с файлами в командной строке.

4.9.1. Создание файлов

Вы можете создавать новые файлы как при помощи приложений (таких как текстовые редакторы), так и командой touch, которая создает пустой файл, куда можно добавить текст или другие данные. Чтобы создать файл с помощью команды touch, наберите в командной строке:

touch <имя_файла>

Вместо <имя_файла> должно стоять название файла по вашему выбору. Просмотрев список файлов текущего каталога с помощью команды

ls -l имя_файла

вы увидите, что этот файл содержит ноль (0) байт информации:

-rw-rw-r--   1 user  user  0 Mar 07 16:01 имя_файла

4.9.2. Копирование файлов

Для копирования файла наберите следующее:

cp <источник> <пункт_назначения>

Замените <источник> названием файла, который вы копируете, а <пункт_назначения> названием каталога, куда он должен попасть.

Итак, чтобы скопировать файл example.txt в каталог docs/ в вашем домашнем каталоге, перейдите в свой домашний каталог и наберите:

cp example.txt docs/

В команде cp вы можете использовать как относительный, так и абсолютный путь к файлу. Наш домашний каталог является вышестоящим по отношению к каталогу docs/; каталог docs/ на ступень ниже домашнего каталога.

[Подсказка]Подсказка

Чтобы больше узнать об относительных и абсолютных путях, обратитесь к Разд. 4.7, Смена каталога с помощью команды cd.

Прочтите man-страницу команды cp (наберите в командной строке man cp) и просмотрите полный список опций команды cp. Среди прочих опций команды cp имеются следующие:

  • -i (interactive) — интерактивный режим. Требует подтверждения, если командой будет переписан файл в месте назначения. Это помогает избежать возможных ошибок.

  • -r (recursive) — рекурсивный режим. Вместо копирования всех указанных файлов и каталогов скопирует все дерево каталогов, подкаталоги и прочее.

  • -v (verbose) — режим дополнительных сообщений. Выводить на экран сообщение о каждой выполняемой операции.

Теперь у вас имеется файл example.txt в каталоге docs/. Воспользуйтесь командой cp -i, чтобы еще раз скопировать файл в то же самое место:

cp -i example.txt docs/
cp: переписать 'docs/example.txt'?

Чтобы переписать файл, нажмите клавишу [Y] и затем [Enter]. Если вы не хотите переписывать существующий файл, нажмите [N] и [Enter].

4.9.3. Перемещение файлов

Для перемещения файлов используйте команду mv. Узнать больше о команде mv можно из man-страницы mv, для чего необходимо набрать в командной строке man mv.

Ниже приведены некоторые часто используемые опции команды mv:

  • -i (interactive) — интерактивный режим. Предупреждает, что выбранный файл будет записан поверх уже существующего в каталоге назначения. Это полезная опция, она похожа на опцию -i команды cp и дает возможность подумать, действительно ли нужно перезаписать уже существующий файл.

  • -f (force) — принудительный режим. Данная опция выключает интерактивный режим и перемещает файлы, не выдавая подсказок. Если вы еще плохо разбираетесь, что делать, эта опция опасна; старайтесь ее не использовать, пока не станете чувствовать себя в системе уверенно.

  • -v (verbose) — режим дополнительных сообщений. Выводить на экран сообщение о каждой выполняемой операции.

Если вы хотите переместить файл из своего домашнего в другой существующий каталог, наберите, находясь в домашнем каталоге, следующее:

mv example.txt docs/

Та же команда, но с использованием абсолютного пути, выглядит так:

mv /home/user/example.txt /home/user/docs/

4.9.4. Переименование файлов

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

Следующая команда переименует файл original_name в файл new_name:

mv original_name new_name

Следующая команда переместит файл original_name из каталога на один уровень выше текущего в текущий и переименует этот файл в new_name:

mv ../original_name new_name

Следующая команда переместит файл original_name из текущего каталога в каталог dir3/ и переименует этот файл в new_name:

mv original_name /dir1/dir2/dir3/new_name

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

Вы научились создавать файлы командой touch и создали каталог docs/, используя команду mkdir.

Теперь нужно научиться удалять файлы и каталоги. Удаление командой rm — простой процесс. Для получения более подробной информации обратитесь к man-странице команды rm. Ниже перечислены некоторые опции данной команды:

  • -i (interactive) — интерактивный режим. Требует подтвердить удаление для предотвращения ошибочного удаления файла.

  • -f (force) — принудительный режим. Выключает интерактивный режим и удаляет файл(ы), не запрашивая подтверждения. Не используйте эту опцию, если вы не достаточно разбираетесь, что нужно делать.

  • -v (verbose) — режим дополнительных сообщений. Выводить на экран сообщение о каждой выполняемой операции.

  • -r (recursive) — рекурсивный режим. Удалить каталог и все файлы и подкаталоги в нем.

Чтобы удалить файл test.txt с помощью команды rm, наберите:

rm test.txt
[Внимание]Внимание

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

Используйте опцию -i, чтобы иметь последнюю возможность подумать, прежде чем удалить файл.

rm -i test.txt
rm: удалить обычный файл 'test.txt'?

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

Для удаления файла с использованием метасимволов наберите:

rm tes*

Эта команда удалит все файлы в каталоге, имена которых начинаются с tes.

С помощью команды rm можно удалить также несколько файлов. Например:

rm test.txt example.txt

Чтобы удалить каталог, используйте команду rmdir (например, rmdir examples), но только если каталог пуст. Чтобы удалить каталог с помощью команды rm, необходимо указать опцию -r.

Например, если вы рекурсивно удаляете каталог examples/, вы должны ввести:

rm -r examples/

Чтобы совместить опции удаления, такие как принудительную и рекурсивную, введите:

rm -rf examples/

Удаление каталога с помощью команды rmdir безопаснее, чем с помощью rm. С rmdir вы не сможете использовать рекурсивное удаление, поэтому каталог, который содержит какие-нибудь файлы, не будет удален.

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

Команда rm может удалить всю вашу файловую систему! Если вы вошли в систему как пользователь root и ввели простую команду rm -rf /, — вы в беде. Эта команда рекурсивно удалит всю вашу систему.

Чтобы больше узнать о команде rmdir, обратитесь к ее man-странице (введите man rmdir).

4.9.6. Создание ссылок

Для создания ссылок, символьных и жестких, используется команда ln.

Жесткая ссылка — другое имя для существующего файла. Для создания жесткой ссылки введите в командной строке:

ln файл ссылка

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

ln -s файл ссылка

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

Чтобы больше узнать о команде ln, прочтите ее man-страницу, введя в командной строке man ln.