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