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