【发布时间】:2021-08-11 17:26:06
【问题描述】:
我正在使用find 搜索文件和目录,这些文件的文件名中有前导破折号:
ls -al
total 0
-rw-r--r-- 1 razhal staff 0 May 22 23:58 -x
drwxr-xr-x 3 razhal staff 96 May 22 23:58 .
drwxr-xr-x 12 razhal staff 384 May 22 17:06 ..
find * -maxdepth 1 -type file
上面给出了以下错误信息:
发现:非法选项--m
我尝试使用-- 终止选项,但仍然遇到同样的问题:
find * -maxdepth 1 -type file --
奇怪的是,如果文件夹包含一个没有前导破折号的文件,我不会收到错误消息:
ls -al
total 0
-rw-r--r-- 1 razhal staff 0 May 22 23:58 -x
drwxr-xr-x 3 razhal staff 96 May 22 23:58 .
drwxr-xr-x 12 razhal staff 384 May 22 17:06 ..
-rw-r--r-- 1 razhal staff 0 May 23 00:03 x
find * -maxdepth 1 -type file
上面返回x,没有错误信息。
我的问题是如何使用find 查找和列出带有和不带有前导破折号的文件/目录?
请注意,我真的想使用 find 而不是其他一些命令,例如 xargs 或类似的。
【问题讨论】:
-
Find 通常是给定目录名来搜索,而不是像你正在做的文件名...使用
.而不是扩展为当前目录中所有文件的通配符? -
不知道为什么关闭,因为我仍然无法处理带有前导破折号的文件或目录?