そこで、現在のディレクトリ内のファイル数より 1 つ少ない数をカウントする簡単なコマンドを書きたいと思いました。このコマンドは近づいていますが、1つずれています。
ls | wc -l
bc
これを1 で減算できるようにパイプするにはどうすればよいですか?
ありがとう!
それは本当にあなたがしたいことではありません。find
代わりに使用してください:
find . -maxdepth 1 -type f | wc -l
また、次の方法で隠しファイルを除外できます。
find . -maxdepth 1 -type f ! -name ".*" | wc -l
完全を期すために、次のような改行とスペースを含むファイルを処理できます。
find . -maxdepth 1 -type f -print0 | tr -dc '\0' | wc -c
パイプするbc
には、次のようなものを使用できます
echo " $(ls | wc -l) - 1 " | bc
編集: の部分$(
)
をスティーブの回答、または必要なその他のコマンドに置き換えます。