Командная строка Linux. Полное руководство (Шоттс) - страница 25

Обратите внимание на сокращение, обозначающее текущий рабочий каталог, — точку в конце команды. Если после этого выполнить команду 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, чтобы посмотреть, как она работает:

>[me@linuxbox playground]$ cp -v /etc/passwd .

>`/etc/passwd' -> `./passwd'

Команда cp вновь скопировала файл, но на этот раз вывела короткое сообщение, указывающее, что операция была выполнена. Обратите внимание, что cp перезаписала первую копию без каких-либо предупреждений. Это как раз тот случай, когда cp полагает, что вы знаете, что делаете. Чтобы вывести предупреждение, включите параметр -i:

>[me@linuxbox playground]$ cp -i /etc/passwd .

>cp: переписать `./passwd'?

Если в ответ на запрос ввести y, команда перезапишет существующий файл; если ввести любой другой символ (например, n), cp оставит прежнюю копию файла нетронутой.

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


Имя passwd не выглядит органичным в нашей песочнице, поэтому дадим этому файлу какое-нибудь другое имя:

>[me@linuxbox playground]$ mv passwd fun

Теперь немножко позабавимся и переместим переименованный файл в каждый из каталогов и обратно:

>[me@linuxbox playground]$ mv fun dir1

переместит файл в каталог dir1. Следующая команда

>[me@linuxbox playground]$ mv dir1/fun dir2

переместит файл из каталога dir1 в каталог dir2. Следующая команда

>[me@linuxbox playground]$ mv dir2/fun .

вернет его в текущий рабочий каталог. Теперь посмотрим, как mv влияет на каталоги. Сначала переместите файл в каталог dir1:

>[me@linuxbox playground]$ mv fun dir1

затем переместите dir1 в dir2 и проверьте их содержимое командой ls:

>[me@linuxbox playground]$ mv dir1 dir2

>[me@linuxbox playground]$ ls -l dir2

>итого 4

>drwxrwxr-x 2 me me 4096 2012-01-11 06:06 dir1

>[me@linuxbox playground]$ ls -l dir2/dir1

>итого 4

>-rw-r--r-- 1 me me 1650 2012-01-10 16:33 fun

Обратите внимание: так как dir2 уже существует, mv переместит dir1 в dir2. Если бы каталога dir2 не было, mv просто переименовала бы dir1 в dir2. В заключение верните все на свои места:

>[me@linuxbox playground]$ mv dir2/dir1 .

>[me@linuxbox playground]$ mv dir1/fun .

Создание жестких ссылок


Теперь попробуем поиграть со ссылками. Сначала займемся жесткими ссылками: создайте несколько жестких ссылок для нашего файла:

>[me@linuxbox playground]$ ln fun fun-hard

>[me@linuxbox playground]$ ln fun dir1/fun-hard