我试图根据修改日期确定哪些文件将被修改。我的目录是可能有几层子目录的列表的顶部。
我从终端窗口运行以下命令:
find Program.8.koeb/ -mtime -10
它会正确生成过去 10 天内修改的文件列表。但是,如果我想查询此列表以确保我想要使用该find
命令触摸的文件,我将运行以下命令:
find Program.8.koebe/ -mtime -10 -exec ls -gotrhR {} \;
它会生成当前工作目录的目录中所有文件的长列表(包括子目录)以及find
分配给 Look 的指定目录。因此,-exec ls -gotrhR {} \;
似乎产生与以下相同的输出:
find . -mtime -10 -exec ls -gotrhR {} \;
这不是我的本意。
答案1
只需添加“-type f”,因为 -exec ls -l {} 将包含这些目录并列出它们。
答案2
当您将目录传递给 时ls
,它会列出该目录中的文件,而不是目录本身。使用该-R
标志,ls
递归地列出子目录中的文件。要列出ls
目录而不是其内容,请传递该-d
选项。
-t
和标志-r
是无用的,因为它们只影响排序,并且您一次列出一个文件。
find Program.8.koebe/ -mtime -10 -exec ls -gohd {} \;
通过 GNU find,您可以使用-printf
而不是调用外部命令。输出格式相似但不完全相同。
find Program.8.koebe/ -mtime -10 -printf '%M %n %s %M %c %p\n'