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
いいえ、lsにはそのようなオプションはありません。
ただし、次のように追加できます。
alias ll="ls -l | sed '1iFile_Permissions Owner Group Size Modified_Time Name'"
その後、llはls -l
の結果をヘッダーとともに表示します。しかし、これは見栄えがよくありません。列に揃えられていないためです...
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の代わりにエコーを使用してこの方法で行うと、すべての色が機能し続けます。
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に設定できます。
これが私の端末の出力に固有のものかどうかはわかりませんが、これはうまくいきました。
そして、これはそれがもたらす出力です。ご覧のとおり、このメソッドを使用して色を保持します。 ${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}"