这是列出目录中文件的结果。
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'