Jika saya ingin membuat beberapa direktori (pada level yang sama) dan kemudian memberinya daftar nama direktori yang dipisah koma (atau sesuatu untuk efek itu)?
command-line
directory
coreutils
mkdir
BGroat
sumber
sumber
man mkdir
....man
diikuti dengan nama perintah.man mkdir
"semacam" menunjukkan kemungkinan untuk membuat beberapa direktori sekaligus, itu tidak disebutkan secara khusus, atau bagaimana melakukannya....
setelahnya[DIRECTORY]
, artinya argumen itu bisa diulang. JadiDIRECTORY(ies)
mengacu pada semuaDIRECTORY
argumen yang disahkan . Namun, komentar "RTFM" terkadang lupa ada notasi untuk dipelajari.Jawaban:
Jawaban singkat
mkdir
membutuhkan banyak argumen, jalankan sajasumber
Anda dapat menggunakan daftar untuk membuat direktori dan itu bisa menjadi sangat liar.
Beberapa contoh untuk membuat orang berpikir tentang itu:
test01
hinggatest10
.Jadi, jika saya memahaminya dengan benar dan Anda ingin membuat beberapa direktori, dan di dalamnya direktori baru, maka Anda bisa melakukan ini:
dan dapatkan sa1, sa2, ..., sa10 dan dalam setiap dir 1, 2 dan 3.
sumber
dash
mana merupakan default/bin/sh
di Ubuntu.mkdir sa$(seq 0.1 0.1 1)
, yang dilakukannya hanyalah membuat satu direktori bernama sa0.1 dan sisanya 0,2, 0,3, ..., 1. Bagaimana saya bisa mendapatkan ekspansi kurung desimal tanpa menulis seluruh daftar?Ini sangat sederhana, memungkinkan Anda ingin membuat struktur direktori seperti:
Anda dapat melakukannya dalam satu perintah seperti ini:
Berhati-hatilah untuk tidak memasuki ruang apa pun
sumber
Buat daftar nama untuk direktori yang Anda inginkan menggunakan jeda baris alih-alih koma sebagai pemisah. Simpan daftar itu.
Anda sekarang harus memiliki semua direktori yang disebutkan dalam daftar Anda.
sumber
spaced dir
, maka itu akan membuat duaspaced
dir , dan `dir.junk\ dir
dalamlist
file memberikan dua direktori,junk\
dandir
. Membuat saya panik ketika saya melihat\
nama direktori.-p
bendera yang disebutkan dalam jawaban lain. Jika demikian,list
file tidak harus menyertakan direktori induk sebagai barisnya sendiri, mereka akan dideteksi dan dibuat secara otomatis.Sesuatu seperti ini? (terima kasih kepada muru untuk
printf
tipnya)Anda dapat membungkusnya menjadi fungsi untuk kemudahan penggunaan:
sumber
printf "%s" "$1" | xargs -d, mkdir
harus cukup.Jadi Anda ingin daftar nama direktori yang dipisahkan koma? Itu bisa dilakukan.
Shell + coreutils
Karena semua orang memposting oneliners, ini milik saya juga (mkdir + substitusi parameter plus + redirection shell).
AWK
AWK adalah bahasa pemrosesan teks, tetapi memiliki
system()
fungsi yang sangat bagus yang akan memanggil shell default, dan menjalankan perintah [s] yang dilampirkan dalam tanda kurung (yang harus berupa string).Atau Anda bisa menghapus
,
dengangsub()
fungsi, dan memanggilsystem("mkdir "$0)
tetapi itu mungkin menjadi masalah jika Anda ingin membuat direktori dengan spasi di namanyaPython
Cara Pythonic melakukan hal yang sama, akan membaca setiap baris, menyingkirkan tertinggal
\n
, mendorong semuanya menjadi satu daftar, dan beralih ke item daftar dan buat dirs per item daftar. Perhatikan bahwa pada contoh di bawah,/home/xieerqi/dirList.txt
adalah path lengkap yang diberikan ke file saya, dan kami membuat path lengkap dari setiap direktori baru dengan menggabungkan string/home/username/
dan nama dir dibaca dari daftar. Ganti nilai-nilai Anda sendiri seperlunyasumber
dir{1..1000}
. Katakanlah, Anda ingin membuat direktori per nama pengguna, atau per proyek, atau per lokasi geografis, seperti kotaPerintah mkdir mengambil beberapa argumen cukup jalankan seperti di bawah ini
Jika Anda ingin membuat beberapa subdirektori maka Anda dapat meneruskan argumen tersebut dalam {} seperti yang ditunjukkan di bawah ini (gunakan hanya koma untuk memisahkan argumen, tanpa spasi).
sumber