だから、私は19.04サーバーで次のスクリプトを使用して、たくさんのビデオファイルをプレフィックスの付いたフォルダーに移動しようとしました。
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
どこでうまくいかなかったかはわかりませんが、ファイルをフォルダに移動する代わりに、単一の出力に行きました。
----> 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 <----
幸いなことに、プロセスが意図したとおりに行われず、フォルダー全体を処理しなかったことに気付いた時点で、プロセス(CTRL + C)を停止しました。
だから今、私はそれらのファイルA
とを手に入れました。これらC
はGb未満で、その見た目では1つのビデオです。
フォルダー自体の合計ディスク使用量には50Gbが含まれていますが、コンピューターの全体的なディスク領域は同じままです。ファイルが削除されていないと思わせますか?
どんな助けも感謝します、ありがとう:)
編集:ファイルは実際にはなくなり、最後に書き込まれるファイルのみが残ります。ディスク使用情報が更新されるまでに少し時間がかかりました。
mv "$file" "$dir/"
し、末尾に/
; $dir
存在しない場合はmv
、名前$file
を変更する代わりにエラーになります$dir
。とも検討mv -i
してくださいmv -n
。そしてmkdir -p
、適切な措置のために、常に移動する前に行動してください。
A
、B
というようにスクリプトを実行する前に存在していましたか?そうでない場合は、ファイルの名前を変更します。名前がで始まるa
か、名前A
がに変更されたすべてのファイルA
は、最後に名前が変更されたファイルのみが生き残り、他は上書きされます。変数を呼び出すdir
ことはディレクトリを作成しません!