老胡的看法:
要在Linux系統中遞迴統計某個目錄下的目錄數,老胡這裡有三種方法:第一種是使用tree命令,簡單快捷;第二種是使用find進行遞迴查詢該目錄下的所有檔案和目錄,然後進行篩選;第三種是使用rsync命令進行統計,比較另類。下面老胡一一進行介紹。
tree實際上是一個以樹狀列印目錄和檔案結構的小程式,大多數Linux發行版都需要先安裝之後才能夠使用:
apt安裝:
yum安裝:
pacman安裝:
使用:使用管道+grep,“directories”作為關鍵字,即可以遞迴的方式將當前目錄下的目錄數統計出來。
find是Linux下一個強大的檔案查詢命令,如果想實現統計目錄的功能,需要用到find的-type指令:
-type d指定了查詢的物件型別是目錄,如果要查詢的物件型別是檔案,就需要使用-type f。這條命令後面需要接一個管道,利用wc -l來按行統計結果的數量:
這樣統計的數量比tree要多,是因為find將隱藏目錄和.也計算在內了。
rsync是一個神奇的命令,可以用來複制檔案,還可以用來統計目錄數量。
為了完成統計的任務,需要用到rsync的--stats開關,開啟狀態顯示,另外還需要使用-n和-a選項,分別實現顯示傳輸列表和遞迴遍歷。
老胡用time來對三個命令執行的過程進行計時,結果如下:
命令執行順序依次為tree、find和rsync,可以看出,在遞迴統計目錄個數這個任務中,find的速度是最快的。
總結一下,遞迴統計某個目錄下的目錄個數老胡給出了三個辦法,可以使用tree、find+wc -l、rsync三種不同的實現方式。其中find+wc -l的速度最快。另外這三種統計手段同樣適用於檔案。
老胡的看法:
要在Linux系統中遞迴統計某個目錄下的目錄數,老胡這裡有三種方法:第一種是使用tree命令,簡單快捷;第二種是使用find進行遞迴查詢該目錄下的所有檔案和目錄,然後進行篩選;第三種是使用rsync命令進行統計,比較另類。下面老胡一一進行介紹。
一、使用tree命令進行統計tree實際上是一個以樹狀列印目錄和檔案結構的小程式,大多數Linux發行版都需要先安裝之後才能夠使用:
apt安裝:
apt install treeyum安裝:
yum install treepacman安裝:
pacman -S tree使用:使用管道+grep,“directories”作為關鍵字,即可以遞迴的方式將當前目錄下的目錄數統計出來。
二、使用find+wc命令find是Linux下一個強大的檔案查詢命令,如果想實現統計目錄的功能,需要用到find的-type指令:
find . -type d-type d指定了查詢的物件型別是目錄,如果要查詢的物件型別是檔案,就需要使用-type f。這條命令後面需要接一個管道,利用wc -l來按行統計結果的數量:
find . -type d | wc -l這樣統計的數量比tree要多,是因為find將隱藏目錄和.也計算在內了。
三、使用rsync命令rsync是一個神奇的命令,可以用來複制檔案,還可以用來統計目錄數量。
為了完成統計的任務,需要用到rsync的--stats開關,開啟狀態顯示,另外還需要使用-n和-a選項,分別實現顯示傳輸列表和遞迴遍歷。
哪一個最快?老胡用time來對三個命令執行的過程進行計時,結果如下:
命令執行順序依次為tree、find和rsync,可以看出,在遞迴統計目錄個數這個任務中,find的速度是最快的。
總結一下,遞迴統計某個目錄下的目錄個數老胡給出了三個辦法,可以使用tree、find+wc -l、rsync三種不同的實現方式。其中find+wc -l的速度最快。另外這三種統計手段同樣適用於檔案。