linux科研武器庫 - 檔案數量統計 - ls -l | grep "^-" | wc -l

樱桃的python武器库發表於2024-07-29

使用場景:
檔案數量統計,在科研場景中,更多是用於檢驗、核對資料集的樣本數量,防止資料遺漏等意外情況。

常用命令:

  • ls -l | grep "^-" | wc -l
    作用:統計當前目錄下,檔案的個數(不包括目錄/資料夾)
  • ls -lR | grep "^-" | wc -l
    作用:統計當前目錄下,檔案的個數(包括子目錄中的檔案)
  • ls -lR | grep "^d" | wc -l
    作用:統計當前目錄下,資料夾(目錄)的個數(包括子目錄)

命令解析:

  • ls -l
    長列表輸出該目錄下檔案資訊(注意這裡的檔案是指目錄、連結、裝置檔案等),每一行對應一個檔案或目錄,
    ls -lR
    列出所有檔案,包括子目錄。

  • grep "^-"
    過濾ls的輸出資訊,只保留一般檔案,只保留目錄是grep "^d",
    這裡使用了正規表示式符號^,表示以...開頭,例如,"^d"表示以d開頭的行,
    在linux檔案系統中,d表示目錄,-表示檔案,如下圖:
    image

  • wc -l
    統計輸出資訊的行數,一行資訊對應一個結果,所以就是結果個數

示例:
現有Arsenal目錄下的檔案組織形式如下:

  Arsenal
  |- 1_1.txt
  |- 1_2.txt
  |- test1_1
     |- 2_1.txt
     |- test2_1
        |- 3_1.txt
     |- test2_2
        |- 3_2.txt
     |- test2_3
        |- 3_3.txt
  |- test1_2
     |- 2_2.txt
     |- 2_3.txt
     |- test2_4

執行效果:

  1. ls -l | grep "^-" | wc -l
    輸出結果為:2
    統計當前目錄下,檔案的個數(不包括目錄/資料夾),
    即:1_1.txt, 1_2.txt.

  2. ls -lR | grep "^-" | wc -l
    輸出結果為:8
    統計當前目錄下,檔案的個數(包括子目錄中的檔案),
    即:1_1.txt, 1_2.txt, 2_1.txt, 2_2.txt, 2_3.txt, 3_1.txt, 3_2.txt, 3_3.txt.

  3. ls -lR | grep "^d" | wc -l
    輸出結果為:6
    統計當前目錄下,資料夾(目錄)的個數(包括子目錄),
    即:test1_1, test1_2, test2_1, test2_2, test2_3, test2_4.

相關文章