查找和复制命令未复制相同数量的文件

查找和复制命令未复制相同数量的文件

我正在尝试对某些文件使用查找和复制,但问题是如果我只运行 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 个文件,为什么?

我如何比较两个未复制的文件?

并且 find 的手册页中没有详细的选项。

答案1

你可能有重复的文件名吗?如果是这样,它们将覆盖现有文件并减少最终到达目的地的文件总数。

您可以尝试一下,看看这会给您带来什么,它应该只计算找到的文件的唯一基本名称的数量:

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

相关内容