Kus*_*nda 10
假设find
您的 Unix 上的实现具有-maxdepth
谓词(它是非标准的,但通常可用),以下find
命令将执行此操作:
find . -maxdepth 1 -type f -mtime +0
Run Code Online (Sandbox Code Playgroud)
这会将修改时间戳超过 24 小时前的常规文件(即不是目录、套接字、命名管道等)的名称打印到终端。
如果-maxdepth
不能使用,则考虑
find . ! -name . -prune -type f -mtime +0 -print
Run Code Online (Sandbox Code Playgroud)
这意味着:
find
正在查看的不是 .
( ! -name .
),当前目录,则find
( -prune
)的搜索路径中修剪该路径。这find
甚至停止考虑进入任何子目录。-type f
),并且-mtime +0
),则-print
)。关于-mtime +0
:在您的 AIX 系统上,请参阅有关 的语义的注释-mtime
以确定是否使用-mtime +0
或-mtime +1
。如果你想在UNIX03行为,你应该使用-mtime +0
,以找到超过24小时前修改时间戳文件(并设置环境变量XPG_SUS_ENV
来ON
并XPG_UNIX98
到OFF
,按照手册中与注)。
默认情况下,find
输出找到的文件的路径名。这意味着您将从./
上述命令中获得文件名。如果您不希望那样,则必须basename
为每个找到的文件名调用该实用程序。
你可以这样做:
find . ! -name . -prune -type f -mtime +0 -exec basename {} \;
Run Code Online (Sandbox Code Playgroud)
在评论中你提到你想压缩这些文件。为此,无需调用该basename
实用程序。只需调用gzip
(或您想使用的任何压缩实用程序):
find . ! -name . -prune -type f -mtime +0 -exec gzip {} +
Run Code Online (Sandbox Code Playgroud)
根据您是否想对这些文件做进一步的处理,您可以在此站点上寻找类似的问题,例如为什么循环查找的输出是不好的做法?
还相关:
归档时间: |
|
查看次数: |
855 次 |
最近记录: |