gpt4 book ai didi

linux - 在 Linux 上,如果没有选项 -d,带有 LS 的 FIND 命令不会显示正确的结果

转载 作者:太空宇宙 更新时间:2023-11-04 03:36:55 25 4
gpt4 key购买 nike

我需要检查当前文件夹中前一天创建的所有文件,该文件夹包含数百万个文件。

如果我使用以下命令,则会显示正确的 80 或 90 个文件。这是正确的。

find . -ctime -1 -exec ls -ld {} \;

但是如果我将 ls 选项更改为 rt 或 l 或任何其他没有 d 的选项。它显示错误的结果。它显示了数千个文件。我最终不得不按控制 C 来停止输出。以下所有都是错误的永无止境的结果。

find . -ctime -1 -exec ls -l {} \;
find . -ctime -1 -exec ls -t {} \;
find . -ctime -1 -exec ls -rt {} \;
find . -ctime -1 -exec ls {} \;

有人能告诉我这是怎么回事吗?为什么它只适用于 d。 不过以下作品

find . -ctime -1 -exec ls -lrtd  {} \;

最佳答案

如果您执行ls/tmp,您就会明白原因。它为您提供 /tmp 目录中的所有文件,而不是目录本身的详细信息。

您可以通过使用 -dls 显示目录而不是其中的文件(如您所见)或使用 find -type f 将搜索限制为仅常规文件来“修复”此问题。假设它只是您感兴趣的常规文件,层次结构中还存在诸如 FIFO 管道和设备之类的内容,但是 -type 上还有其他变体,可以在需要时选取这些内容(有关详细信息,请参阅 find 手册页)。

关于linux - 在 Linux 上,如果没有选项 -d,带有 LS 的 FIND 命令不会显示正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31283771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com