如何從 ls -l 的結果分離檔案權限和檔案名稱?

如何從 ls -l 的結果分離檔案權限和檔案名稱?

我只想查看文件名和相應的文件權限。怎麼做?

ls -l 給出

-rw-rw-r-- 1 jb jb    102 Apr 28 12:48  hello2.txt
-rw-rw-r-- 1 jb jb    102 Apr 28 12:53  hello.txt

我想看到如下

-rw-rw-r-- 1  hello2.txt
-rw-rw-r-- 1  hello.txt

答案1

stat命令是為此範例創建的:

stat -c '%A %n' *.txt

或者

stat --printf '%A\t%n\n' *.txt

其中格式說明符具有以下意義

   %A     access rights in human readable form
   %n     file name

答案2

您可以透過使用它本身來獲得大部分資訊lsls -lGg --time-style=+將僅列印存取模式、連結計數、大小和名稱。

處理ls輸出很棘手,因為檔案名稱幾乎可以包含任何內容,因此在處理時您不能假設它們的任何內容。最好使用find而不是使用來準確列印所需的信息-printf:

find . -printf '%M %p\n'

(使用類似的選項-maxdepth來適當限制清單。)

答案3

您可以將其通過管道傳輸gawk並輸出您想要的字段,如下所示或類似的內容:

ls -l | gawk '{print $1 " " $2 " " $9}'

相關內容