web-dev-qa-db-ja.com

ファイルが非常に多いときに、ターミナルでファイルの数を取得する最速の方法は何ですか?

$ ls -l JSON_files/*.json | wc -l
bash: /usr/bin/ls: Argument list too long
0

ディレクトリに300kまたは1M以上のJSONファイルがある場合、フォルダ内のファイル数を取得するにはどうすればよいですか?

1
Mona Jalal

最も簡単な方法は、コマンドラインのワイルドカードの展開を避け、(コマンドラインではない)出力から必要な名前をフィルタリングすることです:

ls -l JSON_files/ | fgrep .json | wc
2
ubfan1
ls -f *.json | wc -l

「デフォルトでは、lsは名前をソートします。多数ある場合は時間がかかることがあります。また、すべての名前が読み取られてソートされるまで出力はありません。ソートをオフにするには、ls -fオプションを使用します。」

元のコマンド:

ls -f | wc -l

09年9月15日13:55に回答、mark4o

ソース:多数のファイルの高速Linuxファイル数 https://stackoverflow.com/questions/1427032/fast-linux-file-count-for-a-large-number-of-files

find . -name "*.json" | wc -l
1
Gounou