如何从 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}'

相关内容