![查找命令显示文件存在但在目录中找不到](https://linux22.com/image/1023172/%E6%9F%A5%E6%89%BE%E5%91%BD%E4%BB%A4%E6%98%BE%E7%A4%BA%E6%96%87%E4%BB%B6%E5%AD%98%E5%9C%A8%E4%BD%86%E5%9C%A8%E7%9B%AE%E5%BD%95%E4%B8%AD%E6%89%BE%E4%B8%8D%E5%88%B0.png)
我尝试使用以下查找命令搜索文件
find . -type f -mtime +18 -name '*[-.]20[0-9][0-9\-]*' -exec basename {} \;
我可以看到类似的文件输出。
handh2.access.20210429.bz2
handh2.access.20210428.bz2
handh2.access.20210502.bz2
handh2.access.20210430.bz2
但文件不在目录中
root@web38 135 0 # stat handh2.access.20210429.bz2
stat: cannot stat 'handh2.access.20210429.bz2': No such file or directory
root@web38 136 1 # ls | grep "handh2.access.20210429.bz2"
root@web38 137 1 #
任何帮助都将非常有帮助,谢谢。
答案1
正如一些人评论的那样,您的find
命令使用该basename
实用程序明确地剥离了匹配文件的目录组件。因此,您不知道这些文件实际上位于哪个(子)目录中。
您可以通过更改调用来找到文件的完整路径,find
以便它打印完整路径:
find . -type f -mtime +18 -name '*[-.]20[0-9][0-9\-]*' -ls
或者你可以单独查找每一个:
find . -type f -mtime +18 -name handh2.access.20210429.bz2