web-dev-qa-db-ja.com

UNIX / Linuxで「ls -l」コマンドの列ヘッダーを表示する方法は?

UNIX/Linuxのbashシェルで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
17
sunil_rbc

いいえ、lsにはそのようなオプションはありません。

ただし、次のように追加できます。

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

その後、llはls -lの結果をヘッダーとともに表示します。しかし、これは見栄えがよくありません。列に揃えられていないためです...

10
Colin Pitrat

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'

列ヘッダーも欲しかったので、グーグルで検索して、ここにまとめました。しかし、前のユーザーが提案したことを試した後、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'

Sedの代わりにエコーを使用してこの方法で行うと、すべての色が機能し続けます。

5
PyTis

exa は、lsの置換/拡張です。引数を渡す場合-lh exaでは、次のように列名を出力するヘッダー行が含まれます。

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

Lsをexaに置き換えるエイリアスを.bashrcに設定できます。

5
Bart Schuijt

これが私の端末の出力に固有のものかどうかはわかりませんが、これはうまくいきました。

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