0

ディレクトリ/usr/ bin、/ bin、および/ usr / doc内のファイルの総数をカウントする単一行のコマンドライン呼び出しを作成するにはどうすればよいですか?

これまでのところ、私が考えることができるのは使用することです

cd /usr/bin&&ls -l | wc -l

しかし、私はそれらを一緒に追加する方法がわかりません、次のようなものです:

(cd /usr/bin&&ls -l | wc -l) + (cd /bin&&ls -l | wc -l)

たぶん、それを行うためのより良い方法があります。たとえば、各ディレクトリのすべてのstdoutを取得してから、wc -l

何か案が?

4

4 に答える 4

1

findコマンド+wc-lを使用するのはどうですか?

find /usr/bin /bin /usr/doc -type f |wc -l
于 2012-10-04T08:58:54.410 に答える
1

bash または同様の機能を持つシェルを想定すると、配列を使用できます。

files=(/usr/bin/* /bin/* /usr/doc*)
num=${#files[@]}

この手法は、改行を含むファイル名を正しく処理します。

于 2012-10-04T13:23:08.927 に答える
1

wc と組み合わせて複数のディレクトリに ls を使用すると、もう少し簡潔になります。

ls /usr/bin /bin /usr/doc | wc -l
于 2012-10-04T09:17:07.847 に答える
0

Kent が指摘するように、find はディレクトリ エントリを無視するため、優先される場合があります。シンボリックリンクが必要な場合は微調整してください。

検索でサポートされている場合は -maxdepth が必要ですが、その中の予期しないディレクトリに再帰する場合を除きます。また、何らかの奇妙な理由でディレクトリが存在しない場合に備えて、stderr を破棄します。

検索 /usr/bin /bin /usr/doc -maxdepth 1 -type f 2>/dev/null | トイレ -l
于 2012-10-04T10:24:04.473 に答える