Bash:修剪使用绝对路径查找结果

时间:2017-03-28 20:51:46

标签: bash cron putty

我正在运行脚本来查看某些文件夹中的文件类型,但我需要修剪一些文件夹。当我使用相对文件路径通过PuTTy运行它时脚本工作,但是当我添加绝对文件路径以便我可以将它作为cron任务运行时,它不能正确修剪。

这是我的命令:

/bin/find . -not \( -path "./Ready" -prune \) -not \( -path "./Loading" -prune \) -not \( -path "./Backups" -prune \) -name "*.txt"

然而,当我更换" ./"使用完整路径,它会返回它不应该搜索的文件夹中的文件结果。

有什么想法吗?提前谢谢。

1 个答案:

答案 0 :(得分:2)

  

请注意,模式匹配测试适用于整个文件名,   从命令行中命名的起点之一开始。它   只会做                 如果相关起点也是绝对路径,则在此处使用绝对路径名称。这意味着这个命令   永远不会匹配任何东西:

     

找到bar -path / foo / bar / myfile -print

您还需要使用绝对路径作为搜索库,因此将第一个.(搜索的起点)与您用于-path参数的相同绝对路径进行交换。

find /usr -path "/usr/src/linux*" -prune -o -path "/usr/inclu*" -prune -o -name "*.txt" -print

这将列出所有*.txt个文件,但列出以/usr/src/linux*/usr/inclu*开头的任何目录的内容。