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

时间:2016-01-28 12:28:24

标签: linux bash unix formatting ls

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

当我们在命令提示符下键入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

我想知道的是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

4 个答案:

答案 0 :(得分:8)

不,在ls中没有这样的选择。

然而,你可以添加如下内容:

alias ll="ls -l | sed '1iFile_Permissions Owner Group Size Modified_Time Name'"

然后ll将显示带有标题的ls -l的结果。 但这看起来不太好,因为它没有在列上对齐......

答案 1 :(得分: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'

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

alias ls='ls --color=auto'

我也想要列标题,用Google搜索,然后在这里结束。然而,在我尝试了之前用户建议的内容之后,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'

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

答案 2 :(得分:4)

exals的替换/增强功能。如果使用exa传递参数-lh,它将包含一个打印列名称的标题行,如下所示:

exa -lh

示例输出:

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

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

答案 3 :(得分:2)

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

enter image description here

这是它产生的输出。如您所见,它使用此方法保留颜色。请务必将${1}变量保留在双引号中,以便名称中带空格的文件和目录不会导致错误。

enter image description here

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

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}"