検索とコピーコマンドは同じ数のファイルをコピーしません。

検索とコピーコマンドは同じ数のファイルをコピーしません。

一部のファイルに対して検索とコピーを使用しようとしていますが、問題はfindコマンドを実行してwcを確認すると、一部の結果が表示され、このファイルを別のディレクトリにコピーした後に別の結果(ファイル数)が表示されることです。

ここで問題を明確に理解できます。

[root@localhost student]# find /tmp/files/test/ -type f -size -1000c | wc
    664     664   19863

サイズ基準に一致する664個のファイルが表示されることがわかります。これでディレクトリにコピーします。

[root@localhost student]# find /tmp/files/test/ -type f -size -1000c -exec cp {} /tmp/files/pictures/ \;

コピーしたら、ファイルの数を確認してください。

[root@localhost student]# ls -l /tmp/files/pictures/ | wc
    657    5906   36049

このファイルには657個のファイルしかありません。なぜですか?

コピーされていない2つのファイルをどのように比較しますか?

そしてfindのマニュアルページには詳細なオプションはありません。

答え1

ファイル名が重複する可能性がありますか?その場合、既存のファイルを上書きし、最終的にターゲットに到達するファイルの総数を減らします。

これを試してみて、これが何をしているのかを確認できます。見つかったファイルの一意のデフォルト名の数を数えるだけです。

find /tmp/files/test/ -type f -size -1000c -print0 | xargs -n1 -0 basename | sort | uniq | wc -l

関連情報