如何統計目錄下各種檔案的數目

來源:互聯網
上載者:User

標籤:style   blog   color   使用   檔案   for   div   代碼   

要想統計一個目錄中的普通檔案、目錄檔案以及其他檔案的個數,就要事Crowdsourced Security Testing道這個檔案夾中有哪些檔案。然後,通過就可以判斷這些檔案哪些是普通檔案、目錄檔案還是其他什麼檔案類型了。其實要想知道這個檔案夾中有哪些檔案,通過ls命令就可以知道了。

然後,在shell指令碼中通過for迴圈得以實現。關鍵就在於,如果得到該檔案夾中全部檔案的檔案名稱,這個時候就可以使用$(……)來實現。具體代碼:

#! /bin/bashlet "dir_number=0"let "file_number=0"let "other_file=0"for file in $(ls $1)do     if [ -d $file]     then          let "dir_number+=1"     elif [ -f $file ]     then          let "file_number+=1"     else     then         let "other_file+=1"     fidoneecho "directoy number is $dir_number"echo "file numberis $file_number"echo "other file number is $other_number"

以上是通過for迴圈來實現統計各類檔案的代碼實現,那麼,如果想要使用while迴圈來實現,代碼應該怎麼編寫呢?其實,關鍵區段與for迴圈是一樣的,不一樣的是如何判斷程式的退出。程式碼為:

#! /bin/bashlet "dir_number=0"let "file_number=0"let "other_file=0"set $(ls $1)while [ "$1" != "" ]do     if [ -d $1]     then          let "dir_number+=1"     elif [ -f $1 ]     then          let "file_number+=1"     else     then         let "other_file+=1"     fi     shiftdoneecho "directoy number is $dir_number"echo "file numberis $file_number"echo "other file number is $other_number"

其中的關鍵是使用set命令與$(……)共同使用,結果就可以把ls命令結果也就是各個檔案。看成是不同的域,然後通過$1與shift命令共同使用,就可以判斷目錄中的全部檔案,從而可以統計全部檔案中各種類型的格式。

例外,在while迴圈中,除了使用以上方式外,還可以使用冒號命令,冒號命令可以簡化邏輯,相當於TRUE的一個別名。另外,由於冒號命令是內建命令,其運行速度要比true快。具體實現代碼為:

#! /bin/bashlet "dir_number=0"let "file_number=0"let "other_file=0"set $(ls $1)while :do     if [ "$1" == "" ]     then         break     fi        if [ -d $1]     then          let "dir_number+=1"     elif [ -f $1 ]     then          let "file_number+=1"     else     then         let "other_file+=1"     fi     shiftdoneecho "directoy number is $dir_number"echo "file numberis $file_number"echo "other file number is $other_number"

以上就是統計目錄中各類檔案個數的具體實現代碼。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.