我想列出最后一小时有.sh
分机的文件。
我目前正在使用以下内容:
ls -l *.sh | find "/root/" -mmin -60 | awk '{print $9}'
但是这个命令没有按预期工作。
任何人都可以帮助我吗?提前谢谢。
答案 0 :(得分:3)
您可以使用find
命令执行此操作:
find <DIR> -type f -name '*.sh' -mmin -60
或
find <DIR> -type f -name '*.sh' -mmin -60 -executable
<强>说明:强>
<DIR>
是您要搜索的目标目录-type f
强制查找文件-name '*.sh'
查找sh扩展名为-mmin -60
查找在不到1小时内修改过的文件-executable
如果要添加文件具有执行权限的约束。-maxdepth 1
只查看文件夹中的文件或使用更高的深度,如果您想查看N级别。您的命令变为:find <DIR> -maxdepth 1 -type f -name '*.sh' -mmin -60 -executable
答案 1 :(得分:1)
你的意思是:
find . -name "*.sh" -mmin -60 -ls | awk '{print $9}'
1
1
然后9美元给了我一个月的日子。
类似的结果是可能的,纯粹是通过gnu-find:
find . -name "*.sh" -mmin -60 -printf "%Ad\n"
01
01
除了前导零。有三个可能的日期:
%Ak File's last access time in the format specified by k, which is either `@' or a directive for the C `strftime' function. The possible values for k
are listed below; some of them might not be available on all systems, due to differences in `strftime' between systems.
%Ck File's last status change time in the format specified by k, which is the same as for %A.
%Tk File's last modification time in the format specified by k, which is the same as for %A.
(来自gnu-find的联机帮助页。)