find:路径必须在表达式:“天”之前

find: paths must precede expression: `days'

提问人:Curious Developer 提问时间:11/13/2023 更新时间:11/13/2023 访问量:37

问:

嗨,这里可能是一个菜鸟问题。我正在运行命令

find . -atime -2 days # n = 2

以查看 2 天前访问的文件。但是 shell 返回一个错误,说

find: paths must precede expression: 天''

我正在使用 Ubuntu 20 LTS,似乎无法理解这个问题

我使用了这里的命令。而这似乎不能解决我的问题。

帮助将不胜感激。谢谢。

Linux 查找

评论

0赞 holymoof 11/13/2023
尝试从命令中删除。根据文档,期望格式范围或.daysatime-n+n
0赞 Toby Speight 11/13/2023
请重新阅读您使用的标签的指南。这显然是一个关于使用程序的问题,而不是关于编程的问题,所以对于 Stack Overflow 来说是题外话。它可能适合超级用户;在发帖之前,请咨询该网站的帮助中心。find
0赞 Curious Developer 11/13/2023
所有问题都偏离了 Stack Overflow 的主题吗?意思是忽略 SO 并在超级用户上发帖。因为我认为我必须在与编程相关的 bash 脚本中使用此命令

答:

2赞 tripleee 11/13/2023 #1

眼前的问题是,它被解释为带有值和搜索路径的选项,这是一个错误,因为路径需要位于命令行上的谓词之前。-atime -2 days-atime-2find

直接的解决方法是完全删除“天”,因为 的值已经以天为单位(或者严格地说,周期为 86400 秒)表示。-atime

其他一些命令允许您表示后缀以指示时间段,但不是其中之一;但即便如此,它们也必须作为一个单一的论点被引用。例如,(not ; 请注意,该选项是 GNU 扩展,不是可移植的)。finddate -d "2 days"date -d 2 days-d

不幸的是,万维网充斥着语法错误或更糟的“计算机帮助”页面,尤其是在 shell 脚本方面。如果您发现某个示例不起作用,请查阅您尝试使用的实用程序的手册页。