【发布时间】:2016-02-02 18:57:06
【问题描述】:
我一直在搜索,但我找不到在 Linux 的 1 行中基本上执行以下操作的方法,以便找到超过 30 天的文件和目录,从 script_dir 开始递归搜索:
cd $script_dir
find . -type f -or -type d -mtime +30
如果我不使用 cd 切换到我需要开始递归搜索的目录(并且直接使用 find),那么,虽然我在 find 处指定了 script_dir,但递归搜索从我当前所在的目录开始而不是来自 script_dir 和此目录下。我想做类似以下的事情,即使我目前在 script_dir 以外的其他目录,递归搜索也从 script_dir 开始:
find $script_dir -type f -or -type d -mtime +30
谢谢。
【问题讨论】:
-
find "$script_dir" -type f -or -type d -mtime +30不做你想做的事吗?它应该。祝你好运。 -
不,它没有。它的工作原理与 find 相同。 -type f -or -type d -mtime +30,在您当前所在的目录中,因此忽略 $script_dir。
-
doah,我认为我们需要像
find "$script_dir" \( -type f -or -type d \) -mtime +30一样保护-or(逃脱的()对)。 find 中的谓词与默认的-and连接,但-or需要“保护”以防止过早评估。 IHTH 祝你好运。