特定のサイズより大きいファイルを見つけて別のディレクトリに移動できるスクリプトを作成しようとしていますが、findコマンドには結果に現在のディレクトリも含まれるため、移動する必要はありません。そして私が受け取ったニュースは
$ find -size +2000c -print0 | while IFS= read -r -d $'\0' file; do mv $file ~/wrkbnch; done
mv: cannot move '.' to '/home/jerry/wrkbnch/.': Device or resource busy
答え1
探しているなら文書、必ずfind
次の方法でお知らせください-type f
。
find . -type f -size +2000c -exec mv {} "$HOME/wrkbnch" ';'
あなたのコード:
find -size +2000c -print0 |
while IFS= read -r -d $'\0' file; do
mv $file ~/wrkbnch
done
ここで欠けている2つは
-type f
についてfind
$file
二重引用符は、奇妙なファイル名を処理するために使用されます*
。
詳細IFS= read -r
は「「IFS=read -r line」を理解しましたか?「(区切り文字を具体的に指定して、これらの問題の大部分を処理します。)