多くのファイルを含むディレクトリがあります。ls
カウントを提供するスイッチは表示されません。ファイル数を取得するコマンドライン魔法はありますか?
答え1
「文書」の広範な定義を使用します。
ls | wc -l
(隠しファイルは計算されず、ファイル名に改行文字が含まれていないと仮定します。)
隠しファイルを含め(.
および除外..
)、改行の問題を回避するには、正式な方法は次のとおりです。
find . ! -name . -prune -print | grep -c /
または再帰的に:
find .//. ! -name . -print | grep -c //
答え2
ファイルの狭い定義の場合:
find . -maxdepth 1 -type f | wc -l
答え3
役に立つと思いましたが、どのバージョンが必要du --inodes
かわかりません。とを使用する代替よりもはるかにdu
高速です。find
wc
Ubuntu 17.10では、以下が機能します。
du --inodes # all files and subdirectories
du --inodes -s # summary
du --inodes -d 2 # depth 2 at most
| sort -nr
含まれている inode の数に基づいて降順にソートするために使用されます。
答え4
ls
/を使ったwc
最も完全な答えはおそらく
ls -Aq | wc -l
ドットファイルの数を数えたい場合
ls -q | wc -l
それ以外の場合。
-A
ポイントファイルを計算しますが、.
合計を省略します..
。-q
ls
代替非グラフィック文字、特に改行文字を使用して?
ファイルごとに1行を出力する
ターミナルから出力ラインを取得するにはls
(つまり、パイプしないでwc
)-1
オプションを追加する必要があります。
ls
(coreutils 8.23を使用したモーションテスト)