获取权限并将它们连接在一行中

获取权限并将它们连接在一行中

这是列出目录中文件的结果。

total 4
-rw-r--r-x 1 y_wc y_wc 6828641 dez 24 18:21 file1
-rw-rw-rw- 1 y_wc y_wc 2051577 dez 24 18:13 file2
-rw-rwxr-x 1 y_wc y_wc 1874334 dez 24 18:14 file3
-rw-rwxrwx 1 y_wc y_wc 2902856 dez 24 18:14 file4

我想按照权限出现的顺序将权限连接在一行中。这里的权限不包括文件类型。输出应该是 rw-r--r-xrw-rw-rw-rw-rwxr-xrw-rwxrwx

我想要使​​用 coreutils 和单独的awk.

我很接近 coreutils 解决方案,但我无法摆脱文件类型字符。这是我得到的

ls -l | tail -n+2 | cut -d" " -f1 | tr -d '\n'

答案1

ls格式化选项非常差。stat--printf 选项,可以格式化您想要的文件信息。

一个例子:

root@linux:~# stat --printf  '%A\n' /etc/passwd /etc
-rw-r--r--
drwxr-xr-x

在巡回演出中,因为你不是第一个角色

root@linux:~# stat --printf  '%A\n' file*  | cut -c2-11 | tr -d '\n'

答案2

第一个字符可以删除cut -c 2-

ls -l | tail -n+2 | cut -d" " -f1 | cut -c 2- | tr -d '\n'

相关内容