文件列表

时间:2018-03-01 05:57:05

标签: linux bash shell unix

我想列出最后一小时有.sh分机的文件。 我目前正在使用以下内容:

ls -l *.sh | find "/root/" -mmin -60 | awk '{print $9}'

但是这个命令没有按预期工作。

任何人都可以帮助我吗?提前谢谢。

2 个答案:

答案 0 :(得分:3)

您可以使用find命令执行此操作:

find <DIR> -type f -name '*.sh' -mmin -60

find <DIR> -type f -name '*.sh' -mmin -60 -executable

<强>说明:

  1. <DIR>是您要搜索的目标目录
  2. -type f强制查找文件
  3. -name '*.sh'查找sh扩展名为
  4. 的文件
  5. -mmin -60查找在不到1小时内修改过的文件
  6. -executable如果要添加文件具有执行权限的约束。
  7. -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的联机帮助页。)