find コマンドには結果に現在のディレクトリも含まれるため、移動する必要はありません。

find コマンドには結果に現在のディレクトリも含まれるため、移動する必要はありません。

特定のサイズより大きいファイルを見つけて別のディレクトリに移動できるスクリプトを作成しようとしていますが、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つは

  1. -type fについてfind
  2. $file二重引用符は、奇妙なファイル名を処理するために使用されます*

詳細IFS= read -rは「「IFS=read -r line」を理解しましたか?「(区切り文字を具体的に指定して、これらの問題の大部分を処理します。)

おすすめ記事