linux find depth引數理解

perfychi發表於2014-02-20
man find 
-depth Process each directory’s contents before the directory itself.

引數-depth 的意思是:在處理目錄以前首先處理目錄下的子內容。
也即是說在不加-depth的時候, 處理順序是首先處理目錄本身,然後處理目錄下的子內容。加不加-depth引數,會影響輸出結構的輸出順序。

-------------------------------------------------------------
例如下面的兩個命令,輸出結果是相反的:
先輸出子內容,再輸出上層目錄內容,直到最頂層:
[oracle@oracledb ~]$ find test -depth  ! -empty
test/test1/test2/test3
test/test1/test2
test/test1
test

先輸出頂層目錄,再輸出下面的各層子目錄內容,直到最低層:
[oracle@oracledb ~]$ find test   ! -empty
test
test/test1
test/test1/test2
test/test1/test2/test3
---------------------------------------------------------------


去掉頂層目錄test的那行輸出, 加-mindepth 1(可以看到輸出結果為3行,少了一會"test")。因為預設是包含頂層目錄的:
[oracle@oracledb ~]$ find test -depth  -mindepth 1  ! -empty  
test/test1/test2/test3
test/test1/test2
test/test1


[oracle@oracledb ~]$ find test  -mindepth 1  ! -empty
test/test1
test/test1/test2
test/test1/test2/test3




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27042095/viewspace-1084430/,如需轉載,請註明出處,否則將追究法律責任。

相關文章