ファイル数とローカルディレクトリのディレクトリ数をカウントするためのbashスクリプトを作成しようとしていました。ファイル名とディレクトリ名をbashで繰り返す
#!/bin/bash
files=0
dir=0
for file in `ls`
do
if [ -d $file ]
then
dir=$(($dir+1))
else
files=$(($files+1))
fi
done
echo "files=$files, direcotries=$dir"
しかし、for
コマンドは、私が期待するとして、ファイルやディレクトリの名前を反復処理されていません。これが私の最初の試みでした。ファイルouディレクトリの名前にスペースが含まれていると、これはうまく動作しません。名前にスペースがある場合、変数 "ファイル"は、ファイル(またはディレクトリ)名中の各単語の値を仮定します。
これを行う方法はありますか?
'ls'を使うだけで、いくつかのファイルやディレクトリが見当たらないことに注意してください。本当にそれらのすべてを取得するには、代わりに 'ls -A'を使用してください。 – user1934428