Então você quer uma lista separada por vírgula de nomes de diretório? Isso pode ser feito.
Shell + coreutils
Como todo mundo está postando oneliners, aqui está o meu também (mkdir + substituição de parâmetro mais + redirecionamento de shell).
DIR:/testdir
skolodya@ubuntu:$ ls
DIR:/testdir
skolodya@ubuntu:$ mkdir $( tr '[,\n]' ' ' < /home/xieerqi/dirList.txt )
DIR:/testdir
skolodya@ubuntu:$ ls
dirFive/ dirfour/ dirone/ dirthree/ dirtwo/
AWK
O AWK é uma linguagem de processamento de texto, mas possui uma system()
função muito interessante que chamará o shell padrão e executará comandos entre parênteses (que devem ser uma sequência).
DIR:/xieerqi
skolodya@ubuntu:$ awk -F ',' '{for(i=1;i<=NF;i++) system("mkdir "$i)}' dirList.txt
DIR:/xieerqi
skolodya@ubuntu:$ ls -ld dir*
-rw-rw-r-- 1 xieerqi xieerqi 23 Feb 9 11:41 dirList.txt
drwxrwxr-x 2 xieerqi xieerqi 4096 Feb 9 11:42 dirone/
drwxrwxr-x 2 xieerqi xieerqi 4096 Feb 9 11:42 dirthree/
drwxrwxr-x 2 xieerqi xieerqi 4096 Feb 9 11:42 dirtwo/
DIR:/xieerqi
skolodya@ubuntu:$ cat dirList.txt
dirone,dirtwo,dirthree
Ou você pode remover ,
com gsub()
function e chamar, system("mkdir "$0)
mas isso pode ser um problema se você deseja criar diretórios com espaços em seus nomes
Pitão
A maneira pitônica de fazer o mesmo seria ler cada linha, livrar-se do final \n
, colocar tudo em uma lista e iterar sobre os itens da lista e criar diretórios por item da lista. Observe que, no exemplo abaixo, /home/xieerqi/dirList.txt
é o caminho completo fornecido ao meu arquivo, e criamos o caminho completo de cada novo diretório juntando string /home/username/
e o nome do diretório lido na lista. Substitua seus próprios valores conforme necessário
DIR:/testdir
skolodya@ubuntu:$ ls
DIR:/testdir
skolodya@ubuntu:$ /home/xieerqi/makeDirs.py
DIR:/testdir
skolodya@ubuntu:$ ls
dirFive/ dirfour/ dirone/ dirthree/ dirtwo/
DIR:/testdir
skolodya@ubuntu:$ cat /home/xieerqi/makeDirs.py
#!/usr/bin/env python
import os
with open("/home/xieerqi/dirList.txt") as file:
for line in file:
for directory in line.strip().rsplit(','):
path = '/home/xieerqi/testdir/' + directory
os.makedirs(path)
man mkdir
....