![查找特定目录中接收文件的时间](https://linux22.com/image/72362/%E6%9F%A5%E6%89%BE%E7%89%B9%E5%AE%9A%E7%9B%AE%E5%BD%95%E4%B8%AD%E6%8E%A5%E6%94%B6%E6%96%87%E4%BB%B6%E7%9A%84%E6%97%B6%E9%97%B4.png)
我有一个名为的目录,/home/mydir/test
一个文件将从位于此目录中的其他团队发送。如何查找文件到达此特定目录的时间? (我也需要时间戳格式的时间和正常的 hh:mm:ss 格式)我必须将文件移动到此处超过 5 小时的目录。如何获取这些文件?
答案1
您可以使用stat -c %w filename
,它将以人类可读的方式提供出生日期,并-C
以 unix 时间戳提供。
并非每个文件系统都支持出生时间;在这些情况下,使用stat -c %z
,即上次更改的时间。
答案2
不带选项的 stat 允许您查看所有时间戳(出生、访问、修改、更改)
答案3
对于问题的最后部分:用于find
查找所有早于 5 * 60 分钟的文件(-cmin
以分钟为单位测试更改时间,+300
意味着超过 300);{}
替换为文件名:
find in_dir -cmin +300 -type f -exec mv {} out_dir \;
更新:添加-type f
不将 in_dir 本身移动到 out_dir。