【发布时间】:2020-02-22 09:43:04
【问题描述】:
要在我的计算机上找到具有给定字符串的文件,我使用 Unix bash shell 在根目录中执行以下命令:
bash$ 须藤找到 . -name 要搜索的文件名然后我会得到一个文件列表以及以下内容:
查找:./dev/fd/3:不是目录 查找:./dev/fd/4:不是目录这很令人费解,因为还有 ./dev/fd/5 没有出现在列表中,对于所有三个,当我这样做时:
(或 4 个或 5 个)
我明白了:
错误的文件描述符Bash 给出了相同的信息:
重击$ cd 3这是目录的内容:
bash$ 密码 /dev/fd bash$ ls -l 共 0 crw--w---- 1 兄弟 16, 5 Oct 26 02:54 0 crw--w---- 1 兄弟 16, 5 Oct 26 02:54 1 crw--w---- 1 兄弟 16, 5 Oct 26 02:54 2 dr--r--r-- 1 根轮 0 Oct 21 09:15 3 dr--r--r-- 1 根轮 0 Oct 21 09:15 4 dr--r--r-- 1 根轮 0 Oct 21 09:15 5我想知道为什么会出现这种行为,为什么我没有看到文件 ./dev/fd/5 的类似消息,以及这是否表明我没有搜索整个目录结构。如果这表明存在某种损坏的文件,有没有办法不列出它?
【问题讨论】:
-
/dev目录只包含代表连接到 Mac 的硬件(和软件)设备的伪文件。将-prune与find一起使用,或者使用sudo find ... 2> /dev/null丢弃错误 -
或者只搜索更有可能的地方
find /Users /etc /usr /Applications -name ...
标签: macos unix find runtime-error