Jadi, saya sangat tidak sabaran menggunakan skrip berikut di server 19,04 saya dalam upaya untuk memindahkan banyak file video ke folder dengan awalan:
dirs=(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z)
shopt -s nocasematch
for file in *
do
for dir in "${dirs[@]}"
do
if [ -d "$file" ]; then
echo 'this is a dir, skipping'
break
else
if [[ $file =~ ^[$dir] ]]; then
echo "----> $file moves into -> $dir <----"
mv "$file" "$dir"
break
fi
fi
done
done
Tidak ada petunjuk di mana ia salah, tetapi alih-alih memindahkan file ke folder, ia pergi ke output tunggal .. jadi:
----> a1.ts moves into -> A <----
----> a2.ts moves into -> A <----
----> a3.ts moves into -> A <----
----> a4.ts moves into -> A <----
----> a5.ts moves into -> A <----
----> c1.ts moves into -> C <----
----> c2.ts moves into -> C <----
----> c3.ts moves into -> C <----
----> c4.ts moves into -> C <----
----> c5.ts moves into -> C <----
Untungnya saya menghentikan proses (CTRL + C) segera setelah saya perhatikan itu tidak berjalan seperti yang dimaksudkan dan tidak pergi melalui seluruh folder.
Jadi sekarang saya punya file-file itu Adan C, yang kurang dari Gb, dan sepertinya itu adalah video TUNGGAL.
Ada 50Gb yang tidak terhitung dalam penggunaan total disk folder itu sendiri, tetapi ruang disk keseluruhan komputer tetap sama. Membuat saya berpikir file tidak terhapus?
Setiap bantuan dihargai, terima kasih :)
Sunting: file-file tersebut benar-benar hilang, hanya file terakhir yang tersisa, semua yang diperlukan adalah beberapa waktu untuk disk menggunakan info untuk memperbarui .. moral dari cerita, jalankan skrip Anda pada file tiruan sebelumnya!
mv "$file" "$dir/", dengan trailing /; maka jika $dirtidak ada, mvakan kesalahan bukannya ganti nama $filemenjadi $dir. Juga pertimbangkan mv -idan mv -n. Dan selalu lakukan mkdir -psebelum bergerak, untuk ukuran yang baik.
A,Bdan seterusnya ada sebelum menjalankan skrip? Jika tidak, Anda baru saja mengganti nama file. Semua file yang namanya dimulaiaatauAdiubah namanyaA, sehingga hanya file yang diganti namanya terakhir yang bertahan, yang lain ditimpa. Untuk memanggil variabeldirtidak membuat direktori!