簡體   English   中英

查找 unix 命令給出“不是目錄”錯誤消息

[英]Find unix command gives “Not a directory” error message

要在我的計算機上找到具有給定字符串的文件,我使用 Unix bash shell 在根目錄中執行以下命令:

bash$ sudo find . -name file-name-to-be-searched

然后我得到一個文件列表,還有以下內容:

find: ./dev/fd/3: Not a directory
find: ./dev/fd/4: Not a directory

這令人費解,因為還有./dev/fd/5沒有出現在列表中,對於所有三個,當我這樣做時:

bash$ cd ./dev/fd
bash$ cat 3 

(或 4 個或 5 個)

我得到:

Bad file descriptor

Bash 給出了相同的消息:

bash$ cd 3

這是目錄的內容:

bash$ pwd
/dev/fd
bash$ ls -l
total 0
crw--w----  1 bro   tty     16,   5 Oct 26 02:54 0
crw--w----  1 bro   tty     16,   5 Oct 26 02:54 1
crw--w----  1 bro   tty     16,   5 Oct 26 02:54 2
dr--r--r--  1 root  wheel         0 Oct 21 09:15 3
dr--r--r--  1 root  wheel         0 Oct 21 09:15 4
dr--r--r--  1 root  wheel         0 Oct 21 09:15 5

我想知道為什么我會出現這種行為,為什么我沒有看到文件./dev/fd/5的類似消息,以及這是否表明我沒有搜索整個目錄結構。 如果這表明存在某種損壞的文件,有沒有辦法不列出它?

為了解決問題的最后一部分,正如Marc的評論(謝謝)所建議的那樣,添加2> /dev/null可以消除錯誤消息:

bash$ sudo find. -name file-name-to-be-searched 2> /dev/null

然而,它讓我們有點不知所措,為什么文件描述符/dev/fd/5沒有錯誤消息,以及它對find執行的可能影響。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM