"ls -al"コマンド出力からハードリンクの数を削除します。

ls -al以下はコマンドの出力です。

total 280K
drwxrwxr-x 2 enan enan 4.0K Jun 28 09:59 ranger/
drwxrwxr-x 2 enan enan 4.0K Jun  8 23:26 scripts/
-rw-rw-r-- 1 enan enan   49 Jun  4 18:19 caps_to_ctrl.sh
-rw-rw-r-- 1 enan enan  739 Jun  4 18:19 cmus.theme
-rw-rw-r-- 1 enan enan 8.6K Jun  4 18:19 compton.conf
-rw-rw-r-- 1 enan enan 5.9K Jun 22 09:39 config
-rw-rw-r-- 1 enan enan  859 Jun 14 12:13 i3blocks.conf
-rw-rw-r-- 1 enan enan 4.7K Jun 14 12:13 init.el
-rw-rw-r-- 1 enan enan 8.7K Jun 28 11:22 init.vim
-rw-rw-r-- 1 enan enan  815 Jun 14 12:13 install.sh
-rwxrwxr-x 1 enan enan  142 Jun  4 18:19 lock.sh*
-rw-rw-r-- 1 enan enan 1.1K Jun 21 13:30 README.md
-rw-rw-r-- 1 enan enan 197K Jun 14 12:13 screenshot.png
-rw-rw-r-- 1 enan enan 1.2K Jun 20 21:51 Session.vim
-rw-rw-r-- 1 enan enan  427 Jun  9 13:46 tmux.sh

-rw-rw-r--ファイル権限とファイル所有者の間に数字があることがわかりますenan。この番号はファイルへのハードリンクの数です。場合によっては、それを出力に表示するのが便利かもしれませんが、今は必要ではなく、時々注意が気を散らします。ls -al今は不要なので、出力から最後の変更日を削除する方法があることがわかります。

それでは、ls -alコマンド出力からハードリンク数をどのように削除できますか?コマンド出力にハードリンクの数と最後の変更日を表示するのはなぜ重要ですか?私は、あなたがこの情報を使用している人がいる場合は、その理由と方法を教えてください。なぜなら、私が使うべき動作を誤ってあいまいにしたくないからです。

ベストアンサー1

2列目のリンクを見たくない場合は、パイプls -alで接続してくださいawk

ls -al | awk '{$2=""; print $0}'

これにより、標準の区切り文字(この場合はスペース)を使用して、2番目の列を除くすべての列が印刷されます。

私の環境では、最後の変更日の列は6、7、8であり、スペースを区切り文字として使用してその列と2番目の列を削除できます。

ls -la | awk '{$2=$6=$7=$8=""; print $0}'

特定の列が必要ない場合や表示したい場合は、上記の構文をモデルとして使用して目的の列を削除できます。何も痛くないでしょう。すべての列を見て何も見逃したくない場合は、次の基準を使用してください。

ls -al

エイリアスが必要な場合は、~/.bashrc に以下を追加します。

la() {
    ls -la | awk '{$2=$6=$7=$8=""; print $0}'
}

この関数は、一重引用符と二重引用符を考慮したりエスケープしたりすることなく、同じように機能します。laasを使用すると、ll構文エラーが発生します。なぜなら、私の環境ではすでにエイリアスだからです。

おすすめ記事