2010-06-09 173 views
1

find .find . -depth -print查找命令unix

有什麼區別?

+2

屬於superuser.com,順便說一句,嘗試'人發現' – swegi 2010-06-09 08:08:05

回答

1

-depth僅僅意味着一個目錄中的內容的目錄本身之前處理:

pax> find /tmp 
/tmp 
/tmp/.X11-unix 
/tmp/pax 
/tmp/sort444444 
/tmp/sort544444 
/tmp/sort644444 
/tmp/sort744444 
/tmp/XWin.log 

pax> find /tmp -depth 
/tmp/.X11-unix 
/tmp/pax 
/tmp/sort444444 
/tmp/sort544444 
/tmp/sort644444 
/tmp/sort744444 
/tmp/XWin.log 
/tmp 

-print意味着每個項被打印到標準輸出。這通常是系統中的默認值,您不指定操作,但我已經看到一些默認情況下不做任何操作(在我看來不是很有用)。

你可能會更好過明確使用-print0如果你打算將管道輸出到xargs(和使用xargs -0)(如果您的系統支持他們)。這將刪除文件名中的空格問題。

+0

其實我在cpio中使用這個像find一樣。 | cpio -o | cpio -id,所以我希望cpio創建dirs如果不存在 – soField 2010-06-09 08:12:04

+0

因此使用深度選項爲了cpio創建dirs或我可以使用straigthforward find – soField 2010-06-09 08:13:01

+0

其實如果你是_creating_目錄,你可能不會'你想要'-depth'。您想要首先創建目錄,而不是其中的文件。無論如何,我認爲'cpio -d'會創建目錄,所以它可能無關緊要。 – paxdiablo 2010-06-09 08:18:12