如何在unix/linux中的'ls -l'命令中显示列标题?

sun*_*rbc 17 unix linux bash formatting ls

我想ls -l在unix/linux中的bash shell中输入命令时显示所有列标题

当我们ls -ltr在命令提示符下键入时,我们得到类似下面的内容.

-r--r--r--  2   makerpm   root   1898   Jan 28 14:52   sample3
-r--r--r--  2   makerpm   root   1898   Jan 28 14:52   sample1
Run Code Online (Sandbox Code Playgroud)

我想要知道ls' 是否有任何选项显示列标题:

File_Permissions  Owner Group   Size   Modified_Time  Name
-r--r--r--  2  makerpm   root   1898   Jan 28 14:52   sample3
-r--r--r--  2  makerpm   root   1898   Jan 28 14:52   sample1
Run Code Online (Sandbox Code Playgroud)

Bar*_*ijt 8

exa是的替代/增强功能ls。如果您-lh使用exa 传递参数,它将包含一个标题行,其标题列如下所示:

exa -lh
Run Code Online (Sandbox Code Playgroud)

输出示例:

Permissions Size User     Date Modified Name
.rwx------    19 username 29 Sep 11:25  dont_cra.sh
drw-r-----     - username 29 Sep 11:26  f1
.rw-r--r--@ 811k username 29 Sep 11:25  row_count.dat
.rw-r--r--    54 username 29 Sep 11:25  some_text.txt
Run Code Online (Sandbox Code Playgroud)

您可以在.bashrc中设置别名,以用exa替换ls。

  • 通常,我会避免诸如“谢谢!”、“太棒了!”之类的评论。但我在这里是个例外。“exa”程序正是我正在寻找的。实际上,它比那更好。我强烈推荐“stackoverflowers”来谈谈看看链接。所以,如果版主允许,谢谢你的链接;节目很棒!:) - 赞成! (3认同)
  • 字面意思不是所问的 (2认同)

Yok*_*kai 6

不确定这是否特定于我的终端输出,但这对我有用。

在此输入图像描述

这就是它产生的输出。正如您所看到的,它使用这种方法保留了颜色。只需确保将${1}变量放在双引号中,这样名称中带有空格的文件和目录就不会导致错误。

在此输入图像描述

这是代码,您可以复制并粘贴以进行测试。

long_ls() {

local VAR="Permissions|Owner|Group|Size|Modified|Name"

if [ ! "${1}" ]; then
   echo -e "$VAR" | column -t -s"|" && ls -l
else
   echo -e "$VAR" | column -t -s"|" && ls -l "${1}"
fi

}

alias lls=$"long_ls ${1}"
Run Code Online (Sandbox Code Playgroud)


PyT*_*Tis 5

使用sed的最后一个答案是光滑的,但不幸的是,如果你的颜色添加到你的输出(大多数人这样做),它会删除所有颜色.我想建议一个更好的方法,具有讽刺意味的是,也更简单.

首先,我的.bashrc使用以下内容:

 enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
fi

alias ls='ls -AFhls --color --group-directories-first'
Run Code Online (Sandbox Code Playgroud)

说实话,你不需要dircolors部分,这只是我使用的一点点,你可以有一些简单的东西:

alias ls='ls --color=auto'
Run Code Online (Sandbox Code Playgroud)

我也想要列标题,用谷歌搜索它,然后在这里结束.然而,在我尝试了之前的用户建议之后,用sed并意识到一切都是白色的,而且我的颜色都消失了.

那是我在我的bashrc文件中尝试了不同的东西,并且它有效.

只需别名ls,首先回显,然后放置一个分号,然后是你的ls命令.我的.bashrc文件现在有以下行.

alias ls='echo "Dir Size|Perms|Link Count|Owner|Group|Size|Mod. Time|Name"; ls -AFhls --color --group-directories-first'
Run Code Online (Sandbox Code Playgroud)

当这样做时,利用echo而不是sed,所有颜色继续工作.