mkdir
Материал из Xgu.ru
mkdir — программа для создания пустых каталогов. Обратное действие,
то есть удаление пустых каталогов, выполняется с помощью программы rmdir.
Содержание |
[править] Примеры использования программ mkdir и rmdir
Создадим пустой каталог, в котором будем проводить наши дальнейшие операции.
$ mkdir ~/a/ $ cd ~/a/
Сначала, как и должно быть, каталог пуст.
$ ls
Создадим в нём пустые каталоги. Создание каталога можно выполнять с помощью команды mkdir. Аргументы, которые передаются программе, являются именами каталогов, которые создаст программа:
$ mkdir a b c
После выполнения команды в текущем каталоге будут созданы три пустых каталога a, b и c:
$ ls a b c
Как видно по первому символу в выводе ls -l, это действительно каталоги.
$ ls -l total 12 drwxr-xr-x 2 igor igor 4096 Dec 29 22:07 a drwxr-xr-x 2 igor igor 4096 Dec 29 22:07 b drwxr-xr-x 2 igor igor 4096 Dec 29 22:07 c
Можно создавать каталоги не на одном уровне, а вложенные. Например: в текущем каталоге создать каталог a/, в нём каталог b/, в нём c/, а в нём каталог d/.
$ mkdir -p a/b/c/d/
Действительно, так и получилось.
$ tree a a `-- b `-- c `-- d 3 directories, 0 files
Удалить цепочку пустых каталогов можно точно также просто, как и создать. Только использовать не программу mkdir, а программу rmdir для этого:
$ rmdir -p a/b/c/d
Удалился даже каталог a/:
$ ls b c
Если один из каталогов в цепочке не пуст, цепочка удаляется до того места, где встречается второй каталог:
$ mkdir -p a/b/c/d $ mkdir -p a/b/e $ tree a a `-- b |-- c | `-- d `-- e 4 directories, 0 files
Удаление остановится на каталоге b, потому что после удаления цепочки c/d, он не будет пустым. В нём останется каталог e/:
$ rmdir -p a/b/c/d rmdir: failed to remove directory `a/b': Directory not empty $ ls a/b e $ tree a a `-- b `-- e 2 directories, 0 files
А теперь удаление пройдёт без всяких проблем.
$ rmdir a/b/e
Программа rm тоже может удалять каталоги, но только для этого нужно использовать специальный ключ -r, без которого она удаляет только файлы, а каталоги игнорирует.
$ mkdir -p a/b/c/d $ rm a rm: cannot remove `a': Is a directory $ rm -r a
Создание дерева каталогов:
$ mkdir -p a/{b,c,d/{e,f},g/{h,i/{j,k}}} $ tree a a |-- b |-- c |-- d | |-- e | `-- f `-- g |-- h `-- i |-- j `-- k 10 directories, 0 files
[править] Создание и удаление каталогов в языках программирования
В скриптах можно создавать и удалять каталоги средствами языка или его модулей, не прибегая к использованию mkdir.
[править] Python
Если каталог не существует, создать его. Можно создавать цепочки каталогов. Используется модуль os[1].
import os if not os.path.exists (...): os.makedirs (...)