Создание и удаление файлов и каталогов
Простейший способ создать пустой файл заключается в использовании пе- ренаправления "пустого ввода" в файл с помощью команды > файл (при- мер 4.7). Особенностью данного способа является то, что если файл сущест- вовал до выполнения этой команды, его содержимое будет стерто.
Пример 4.7. Создание файла |
$ > empty
$ ls -l empty
-rw-rw-r-- 1 user1 user1 0 Окт 12 21:33 empty
Команда touch дает возможность создать один или несколько файлов. Имена создаваемых файлов задаются аргументами команды touch (пример 4.8). Если в качестве аргумента указан файл, который уже существует, то у этого файла в результате выполнения команды touch будет изменена дата модифи- кации.
Пример 4.8. Команда touch |
$ date >f1;cat f1;ls -l f*;sleep 60;touch f1 f2;date;cat f1;ls -l f*
Чтв Окт 15 21:26:34 YEKST 2009 # cat f1
-rw-rw-r-- 1 user1 user1 37 Окт 15 21:26 f1 # ls -l f*
Чтв Окт 15 21:27:34 YEKST 2009 # cat f1
Чтв Окт 15 21:26:34 YEKST 2009 # date
-rw-rw-r-- 1 user1 user1 37 Окт 12 21:27 f1 # ls -l f*
-rw-rw-r-- 1 user1 user1 0 Окт 12 21:27 f2 # ls -l f*
Командная строка примера 4.8 содержит сразу восемь команд. Первая из них date > f1 создает файл f1, содержащий текущую дату. Это достигается с помощью перенаправления потока вывода команды date. Команда cat f1 выводит содержимое этого файла, команда ls –l f* — подробную инфор- мацию о файле f1. Обратите внимание на время его модификации — 21:27:34. Далее команда sleep 60 задерживает ход выполнения последую- щих команд на 60 секунд. После этого команда touch f1 f2 изменяет дату модификации файла f1 и создает новый пустой файл f2. Команда date затем выводит текущее время. Команда cat f1 снова выводит содержимое файла f1 для демонстрации того, что оно не изменилось. Но команда ls -l показыва- ет, что даты модификации файлов f1 и f2 соответствуют времени выполнения команды touch.
Для удаления файла необходимо воспользоваться командой rm (пример 4.9).
Пример 4.9. Удаление файлов |
$ ls
f1 f2 f3
$ rm -f f1 f2
$ rm -i f3
rm: удалить пустой обычный файл `f3'? y
$ ls
$
Изначально в текущем каталоге находились три файла: f1, f2 и f3 (при- мер 4.9). Первые два из них были удалены командой rm -f. Эта команда уда- ляет файлы без запроса на подтверждение, т. к. используется опция -f. На- оборот, если необходимо выводить запрос на удаление каждого файла, ука- занного в качестве аргумента команды rm, требуется использовать опцию -i.
Команда rm, вызванная без опций, не задает никаких вопросов по поводу не- обходимости удаления файлов, как это происходит с опцией -i. При исполь- зовании шаблонов подстановки в качестве аргументов команды rm настоя- тельно рекомендуется предварительно проверить шаблон командой ls.
Также в целях безопасности рекомендуется использовать псевдоним для команды rm, активизирующий ее интерактивный режим работы по умолча- нию (пример 4.10).
Пример 4.10. Псевдоним для команды rm |
$ alias rm='rm -i'
Приведенный в примере 4.10 псевдоним следует разместить в файле профиля пользователя .bash_profile, либо в .bashrc. Использование его включит интер- активный режим работы команды rm по умолчанию. Важно понимать, что затруднительно, а часто просто невозможно восстановить удаленный файл.
Если необходимо рекурсивно удалить каталог со всем его содержимым, надо использовать команду rm с опцией –r (пример 4.11).
Пример 4.11. Рекурсивное удаление каталога с содержимым |
$ ls -R d1 d1:
direc1 file3
d1/direc1: Remember
$ rm -rf d1
$ ls -R d1
ls: d1: No such file or directory
Каталог d1 (пример 4.11) содержал файлы и подкаталоги. После его удаления командой rm -rf команда ls сообщает о его отсутствии.
Командой rm -rf следует пользоваться с особой осторожностью, т. к. уста- новленная опция -f запрещает выводить какие-либо сообщения об удалении файлов. Разумно перед использованием такой команды переходить в роди- тельский каталог удаляемого каталога, и затем указать относительное имя удаляемого каталога. Этого правила следует придерживаться обязательно при работе в сеансе суперпользователя.
Команда mkdir создает каталоги, а при использовании опции -p команды
mkdir можно создать целую ветвь вложенных каталогов (пример 4.12).
Пример 4.12. Создание каталогов |
$ mkdir dir1
$ cd dir1
$ ls
$ mkdir -p mydir1/mydir2/mydir3
$ ls -R mydir1 mydir1:
mydir2
mydir1/mydir2: mydir3
mydir1/mydir2/mydir3:
Пример 4.12 демонстрирует, как с помощью команды mkdir был создан ката- лог dir1. Далее пользователь перешел в созданный каталог командой cd. За- тем, используя ключ -p команды mkdir, пользователь создал целую ветвь вложенных каталогов: mydir1/mydir2/mydir3.
Команда rmdir позволяет удалять каталоги, если они пустые (пример 4.13).
Пример 4.13. Удаление каталогов |
$ mkdir emptyDir
$ ls -F
emptyDir/ mydir1/
$ rmdir *
rmdir: `mydir1': Directory not empty
В примере 4.13 был создан еще один каталог emptyDir. Затем пользователь попытался удалить оба каталога, однако удален был лишь пустой каталог emptyDir. Каталог mydir1 был пропущен, поскольку он непустой.
Команда rmdir -p способна удалить ветвь вложенных пустых каталогов. Ес- ли в пути некоторый каталог будет содержать файлы, то будут удалены все пустые каталоги в пути до первого непустого каталога.
Напомню, что команда rm -rf удаляет каталог со всем его содержимым.
Дата добавления: 2015-06-12; просмотров: 994;