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 (...)