回答:
のソースコードを見ると、ディレクトリでオプションを使用すると常に表示されるcoreutilsことtotalがわかりました。-l
-dディレクトリの内容の代わりにエントリをリストするオプションを使用すると、非表示になりtotalます。しかし、引数なしで(またはディレクトリ上で)実行すると、ディレクトリではなく、ディレクトリの内容だけが表示されます。したがって、ワイルドカードが必要です。*すべてのファイルに.*一致し、隠しファイルにも一致します(-aオプションに対応):
ls -ld * .*
-hオプションについては、それは私のために動作します。1118360バイトは1.1Mと表示されます。1024より小さいファイルはバイト単位で表示されます。
lsマニュアルページを手紙に持って行くか、これを検討ls /することができます:「/ファイルの場合はエントリを、ディレクトリの/場合はディレクトリの内容をリストする」と解釈できます。を使用-dすると、最後の条件が削除され、ディレクトリの内容ではなく常にエントリが出力されます。これは、パスがファイルまたはディレクトリの場合に適用されます。
ワイルドカードを使用しlsてディレクトリ一覧の実行を回避すると、次lsのようなオプションを使用できなくなるため、最適ではありません--almost-all。
同様Enzotibの提案、それを削除する最も簡単な方法は、パイプにそれを介してであるtail最初の行を切り落とすします。ただし、lsその出力がインタラクティブではなくパイプであることを検出し、不要な方法でデフォルトを変更します。したがって、堅牢にするために、いくつかのオプションも追加する必要があります。
--color=always:色を表示し続ける--hide-control-chars:?コンソール出力を台無しにする可能性のある制御文字の代わりにファイル名で印刷するスクリプトがあります~/bin/l(でBashエイリアスを使用することもできます~/.bash_aliases):
#!/bin/bash
ls -l --color=always --hide-control-chars "$@" | tail --lines=+2
lsデフォルトで必要な他のオプション、たとえばを追加することもできます--group-directories-first --time-style='+%FT%T.%N%:::z' --indicator-style=slash。
ls -l | tail -n+2ませんが、それ以外は答えがありません。