Quindi vuoi un elenco separato da virgole di nomi di directory? Questo può essere fatto.
Shell + coreutils
Dato che tutti pubblicano oneliner, ecco anche il mio (mkdir + sostituzione dei parametri più + reindirizzamento della 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
AWK è un linguaggio di elaborazione del testo, ma ha una system()
funzione molto bella che chiamerà la shell predefinita ed eseguirà i comandi racchiusi tra parentesi (che deve essere una stringa).
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
Oppure potresti rimuovere ,
con la gsub()
funzione e chiamare, system("mkdir "$0)
ma potrebbe essere un problema se vuoi creare directory con spazi nel loro nome
Pitone
Il modo pitone di fare lo stesso, sarebbe quello di leggere ogni riga, sbarazzarsi del trailing \n
, inserire tutto in un elenco e scorrere gli elementi dell'elenco e creare dir per elemento dell'elenco. Si noti che nell'esempio seguente, /home/xieerqi/dirList.txt
è il percorso completo fornito al mio file e creiamo il percorso completo di ogni nuova directory unendo stringa /home/username/
e il nome della directory letto dall'elenco. Sostituisci i tuoi valori secondo necessità
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
....