【问题标题】:Bash , Find modified files for the last x daysBash ,查找最近 x 天修改过的文件
【发布时间】:2021-06-30 09:58:20
【问题描述】:

有没有办法从特定目录中找到过去 x 天修改过的所有文件? 我已经这样做了

find /home/user -iname "*.txt" -mtime -$x -print 但它显示来自用户而不是来自目录的文件。

目录的内容是:

total 8
-rw------- 1 danae danae    0 Jun 21 22:08 a
dr-x------ 2 danae danae 4096 Jun 30 10:56 d
-rw------- 1 danae danae    0 Jun 30 10:56 file
-rw-rw---- 1 danae danae    8 Jun 29 13:03 file2
-rw-rw---- 1 danae danae    0 Jun 21 22:06 file3
-rwxrwx--x 1 danae danae    0 Jun 21 22:06 file4
-r-------- 1 danae danae    0 Jun 21 22:07 file5
-rw-rw-r-- 1 danae danae    0 Jun 21 22:07 file6

【问题讨论】:

  • 你要查看的目录是什么?
  • 用户输入它@Zachary

标签: linux bash directory


【解决方案1】:

当前命令的问题

find /home/user -iname "*.txt" -mtime -$x -print

是“/home/user”,它告诉 find 总是在那个目录中查找。

这应该替换为您要查看的目录。或者如果您在 bash 脚本中执行此操作,请先 cd 到该目录,然后使用

find . -iname "*.txt" -mtime -$x -print

【讨论】:

  • 我试过了,它确实进入了目录,但它给了我 0 个文件,虽然我已经修改了它们
  • 目录的内容是什么,运行命令ls -l 并将输出包含在您的问题中。
  • 我上传了内容
  • 这些文件都不匹配您的过滤器“*.txt”意味着只显示以 .txt 结尾的文件
  • 假设您想显示在​​该特定时间编辑的所有文件删除 -iname 过滤器find . -mtime -$x -print
【解决方案2】:

使用 .表示当前目录:

find . -iname "*.txt" -mtime -$x -print

【讨论】: