Создание и удаление файлов и каталогов

Простейший способ создать пустой файл заключается в использовании пе- ренаправления "пустого ввода" в файл с помощью команды > файл (при- мер 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; просмотров: 999;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.013 сек.