慕九州州
ls前面不需要-,{}和\;之间需要一个空格
Index303
日期上5天前那一天
SeanSuzhou
[root@learning ~]# ls -R
.:
abc anaconda-ks.cfg bbb initial-setup-ks.cfg japan
./bbb:
abc
./japan:
abc
[root@learning ~]# find . -name abc
./japan/abc
./bbb/abc
./abc
[root@learning ~]# find . -name abc -exec ls {} \;
./japan/abc
./bbb/abc
./abc
我模仿你的案例测试是可以找到的建议你查看下是否有误删的可能
未知未闻
和搜索文件是一样的
find /root -name 目录名称
qq_九夜_
命令没错 我执行了 没有大于6k的出现 不要加-exec后面的命令 加了会出现一些比6k大的文件
GoAshore
去掉ls 没有结果
qq_慕勒7559155
是的,10可以是任意的整数
慕慕0551004
应该是每种查找方式只能用一次 如果多次引用 就会保留后者
慕婉清6541298
你斜杠反了
慕粉3787548
find /var/log/ -mtime +10 -exec rm -rf {} \;
慕标4414681
你可以使用代码 man echo查看一下帮助文档,display a line of text 用于字符串的输出。可以在网上查一下echo命令 你也可以用 cat $PATH将内容显示在标准输出上
慕田峪3367142
好吧,我解决了。。。。find /etc -name "*yum*" -exec ls -lh {} \; 这条命令执行后,查找到的结果是符合条件的文件和符合条件的目录下的文件,却不显示目录的详细信息,问题是我只是想找目录并显示目录详细信息。
解决方法1:find /etc -name "*yum*" -exec ls -ldh {} \;
注1:ls -d:列出目录,而不是目录下的内容,并且不要取消符号链接(软链接)的引用
注2:那么如果我想使用find+ls 查询并显示我想要找的目录和目录下文件的详细信息呢?个人答案:没有意义,使用find的前提是不知道文件在哪里,如果知道了文件在哪里,直接使用cd后ls更直接。如果有人有办法使用find+ls查找目录并层级显示目录下的文件,请告诉我,分享是美德,谢谢!
解决方法2:ls -lh /etc/ | grep yum:这是在知道想要查找目录大致范围的情况下,可以使用的方法。。。
还是副的
find:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配
不能用管道符吧
chipinzhen

通过测试发现是可以的
_朝歌_
k应是小写
用户已封号
-exec 是对前边 find 搜索出来的结果进行进一步动作处理的吧,ls -lh应该就不算是动作处理了吧。动作处理应该是指的mv、cp、rm之类的吧。。
奔跑的菜鸟_
find /var/log -mtime +10 -exec rm -rf []\;
雪域苍狼

是这样的结果对吧,那是因为你创建的yangyy是个目录,而不是文件。你创建一个文件,再去删,就不会有报错了
qq_随心_127
wdj不是文件,是目录,-size只会显示文件,可以# find . -name *wdj*
-size不接收小数作为参数,只能是整数值,可以用# find . -size -3k -a -size +2k
xuexidafahao
查看Linux内核版本,是否find命令或者 -exec 有其他问题。从提示看来,像是执行了2次 rm -rf ;
大概可能是,在第一次找到去删除了一次,执行结束后又执行了一次。
而-exec 后面的语法 rm -rf 后面的参数是一个绝对路径的文件名。
find找到之后去执行 -exec 后面的 rm ,才会出现这种情况。
以上只是猜测。
ruijian_xu
默认是逻辑与,加入-ok选项之后,如果你后续的操作命令要移除文件,那么会在删除文件之前会询问你是否确认删除,防止文件被意外删除。
fisheva
找到问题所在了, {} \; 间有空格不能省。
fisheva
它不经过系统用户,所以产生的文件可能没有所有者
hahajiajun
Change
xgXG
你自己查下就会发现这些都是系统自带的目录,没有任何日志的时候也是有的,但是目录是空的
secrethaha
大括号后面有个空格。
精慕门6504714
推荐阅读https://blog.csdn.net/weixin_44984694/article/details/109487601
这篇blog,讲的很详细
心情如海
当然啦
qq_汪星人_4
qwe你好啊谢谢
首先find 是Linux较为强大的查询命令而locate只能进行文件查找 find 命令的用法有很多一种是通过
我们如果知道文件的所在目录下的话可以不在root目录下进行查找这样可以提高查询效率,如果是在root目录下
可以通过 find -name "wenjian"在双引号中涉及到通配符的问题 通配符有? ,*, []等?代表的是占位符只占一位而*号的可以匹配相近的信息 像你所说的这种情况?! ?只是起到占位的作用他占取了第一位相应的你查找的信息是只要无论第一位是什么只要第二位是i将其符合的信息统统列出来