请帮我解析以下find命令的意思: find . -name "*ab*" -exec rm -f \;
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请帮我解析以下find命令的意思: find . -name "*ab*" -exec rm -f \;相关的知识,希望对你有一定的参考价值。
1."."是什么意思?
2.\; 这个又是什么意思?
. 在此表示当前目录
-name “*ab” 表示查找以ab结尾的文件或文件名。
-exec表示执行什么命令。后面跟要执行的命令。此处是rm -f,表示不确认删除。
\;表示把查找到的结果发送到此来。
整句命令表示:在当前目录下查找以ab结尾的文件,并删除。 参考技术A find . -name ".ab" 意思是从当前目录查找以.ab为文件后缀名的所有文件 -exec 是表示查找后紧接着执行的命令 因为rm 不接受管道输入,所以不能写成 find . -name ".ab" | rm 的形似,rm -f 就是删除文件的意思, 代表的是find 到的结果传给-exec参数 ,而使用-exec 参数必须用分号;结尾 但是在shell中不懂分号;是什么鬼,所有要用转义符加分号,所以就有了\; 参考技术B “.”表示当前目录的意思;
是占位符,find出来的,每一个文件,的意思。对于每一个文件,占座,等find出来后,放到对应的的位置。
反斜杠用于识别最后的参数即反斜杠后面,就是find的另外一个参数了。 参考技术C 嗯.根据字面意思理解呢.好像是 查找文件名为ab或者包含的文件并删除
1."."是文件名
2.\位置.
嗯.以上观点,纯属个人见解.如有雷同.纯属正常
文件列表
我想列出最后1小时的文件,其中包含.sh
扩展名。我目前正在使用以下内容:
ls -l *.sh | find "/root/" -mmin -60 | awk '{print $9}'
但是,此命令无法按预期工作。
谁能帮我?先感谢您。
答案
您可以使用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
另一答案
你的意思是:
find . -name "*.sh" -mmin -60 -ls | awk '{print $9}'
1
1
然后9美元给了我一个月的那一天。
类似的结果是可能的,纯粹通过gnu-find:
find . -name "*.sh" -mmin -60 -printf "%Ad
"
01
01
除了前导零。有3个日期可能:
%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的手册页)。
以上是关于请帮我解析以下find命令的意思: find . -name "*ab*" -exec rm -f \;的主要内容,如果未能解决你的问题,请参考以下文章