Saya memiliki folder besar ini dengan ribuan file tidak terurut. Apakah layak memindahkan 5000 pertama ke subfolder melalui mv
perintah? Untuk sekarang saya memindahkan file dengan
mv *some_pattern* ./subfolder1/
Sedangkan untuk sekarang, saya memindahkan gambar secara acak, itu tidak terlalu penting jika tidak ada 5000 file di setiap subfolder. Apakah ada cara yang lebih baik untuk melakukannya?
Jawaban:
sumber
-
atau.
dan dengan asumsisubfolder1
itu sendiri tidak muncul dalam daftar itu.)$ sudo mv `ls | head -50000` 01/ sudo: unable to execute /bin/mv: Argument list too long
Dengan
zsh
:Untuk memindahkan hingga 5.000 file biasa sesuai urutannya dalam direktori.
Untuk 5000 pertama dalam daftar yang diurutkan secara leksikografis:
Jika Anda mendapatkan kesalahan tentang daftar arg terlalu lama . Anda dapat menggunakan perintah
zsh
buitinmv
dengan mengeluarkan:pertama.
POSIXly:
sumber
Versi yang sederhana dan mendukung karakter khusus, spasi, dll.
Agar ini berfungsi sebagaimana adanya
dir2
harus ada dan Anda harus menjalankannya dari direktori induk daridir1
dandir2
.Ini akan memindahkan 1000 file dari dir1 ke dir2.
sumber
ls -Q -S dir1 | head -1000 | xargs -i mv dir1/{} dir2/
untuk memindahkan 1000 file terbesar dalam dir1 (-S mencantumkan file dengan ukuran)ls -Q
tidak menghasilkan output yang kompatibel denganxargs
format input yang diharapkan. Ini membantu untuk nama file yang mengandung karakter spasi, tetapi tidak untuk tanda kutip ganda atau garis miring terbalik dan bahaya untuk nama file yang mengandung karakter kontrol termasuk TAB.Anda mungkin perlu melakukan sesuatu seperti ini:
Skrip ini berfungsi dalam bash, ksh, sh, dan beberapa varian UNIX.
sumber
destination
sendiri tidak muncul dalam daftar itu.)jalankan perintah di bawah ini
Dalam
find
perintah,.
(titik) menunjukkan direktori saat inimenemukan file yang dimulai dengan Hello dan diakhiri dengan gz, 5000 file pertama akan dipindahkan ke jalan
/data01/path/
sumber
Saya berhasil melakukan langkah 50.000 tanpa kesalahan mv bash seperti ini
Cukup lucu, ini ada di samba share, jadi batas 50k adalah karena Windows Explorer GUI tidak suka lebih dari 60k file dalam direktori secara umum.
sumber