显示 2 天以内的文件的命令到底是什么?我想到了这样的事情:
$ find / -mtime -2
...但我不确定如何打印找到的文件的日期。我的目标是在已安装的 ntfs 系统上查找最近几天内新的或更改的文件。
此外,将结果从最新到最旧排序将非常有帮助。那可能吗?
答案1
48 小时内创建或修改的文件
从最新到最旧排序:
find / -mtime -2 -printf "%T@" -ls | sort
我发现%T@
:man find
上次修改时间(自纪元以来的秒数)
答案2
如果您通过管道传输到 xargs,那么您可以轻松调整输出/格式选项以ls
显示日期、按日期排序等。
find / -type f -mtime -2 -print0 | xargs -0 ls -lt
答案3
这在 zsh 中更容易,这要归功于它全局限定符。
print -l /**/*~/(proc|dev|sys)/*(m-2om)
这列出了 下的所有文件,但或 或下/
的文件除外,这些文件在过去 2 天内被修改过 ( )。文件按修改时间 ( ) 的逆时间顺序列出,每行一个 ( )。/proc
/dev
/sys
m-2
om
print -l
如果您还想列出文件元数据,则不需要在 shell 中排序,只需过滤即可。如果匹配文件太多,您可能会遇到与平台相关的命令行长度限制。
ls -dlt /**/*~/(proc|dev|sys)/*(m-2)
如果您只想匹配常规文件,请.
在括号内添加。
仅使用 POSIX 工具,您就可以用于ls -dlt
排序和find
生成文件列表。同样,如果匹配文件太多,您可能会遇到平台相关的命令行长度限制。如果您只想匹配常规文件,请-type f
在 之前或之后添加mtime -2
.
find / -mtime -2 -exec ls -dlt {} +
答案4
(注:问题的一个句子最初要求提供日期,文本中早于 2 天,而标题则相反。对输出进行排序的需要也是后来介绍的)。
find / -mtime -2 -ls
使用 +2,您可以看到超过 2 天的文件,使用 -2 可以看到不到两天的文件,使用 2:可以看到 2 天前的文件。
使用 -ls 你会得到类似 ls -l 的输出,你可以在其中查看文件日期。
find / -ctime -2 -ls
使用 ctime 而不是 mtime,您可以获得创建日期而不是修改日期,但根据文件系统功能和 /etc/fstab 中的设置,这可能会也可能不会起作用。