仅列出文件大小和名称以及符号链接

rub*_*o77 13 ls

当我使用时,ls -lah我会获得每个文件的大量信息。

我怎样才能只获得名称和文件大小?

另外,我想保留带有箭头的符号链接列表,例如

lrwxrwxrwx  1 rubo77    rubo77       4 Nov 21 01:53 test2 -> test
Run Code Online (Sandbox Code Playgroud)

slm*_*slm 9

使用 awk 选择要打印的列

一种方法是解析ls.

例子

$ ls -lah | awk '{print $9, $5}' | tail -5
.yEd 4.0K
.youtube-dl 4.0K
.zenmap 4.0K
.zshrc 32
zzzz 3.3K
Run Code Online (Sandbox Code Playgroud)

顺便说一句,您可以使用column.

$ ls -lah | awk '{print $9, $5}' | column -t | tail -5
z                                                   4
.youtube-dl                                         4.0K
.zenmap                                             4.0K
.zshrc                                              32
zzzz                                                3.3K
Run Code Online (Sandbox Code Playgroud)

选择要使用 awk 删除的列

如果您希望删除其他列,同时保留其他列,您可以使用此awk方法将不需要的列清空。

例子

$ ls -lah | awk '{$1=$2=$3=$4=$6=$7=$8=""}1' | tail -5
    4.0K    .youtube-dl
    4    z -> zzzz
    4.0K    .zenmap
    32    .zshrc
    3.3K    zzzz
Run Code Online (Sandbox Code Playgroud)

最终解决方案

OP 使用上述示例的组合提出了这条命令链。

$ ls -lah | awk '{print $5, $9$10$11}' | column -t | column 
...
4.0K  .gphoto              773   .rdebug_hist     4.0K  .youtube-dl
1.5K  .grip                4.0K  .rdesktop        4     z->zzzz
Run Code Online (Sandbox Code Playgroud)


小智 5

从手册页:

  -s, --size
          print the allocated size of each file, in blocks
Run Code Online (Sandbox Code Playgroud)

因此对于人类可读的尺寸:

ls -sh
Run Code Online (Sandbox Code Playgroud)