シェルでディレクトリが空かどうか確認する方法
ディレクトリが空かどうかは次のコマンドで判断できます。
if [ -z "$(ls -A /path/to/directory)" ]; then
echo "Directory is empty"
else
echo "Directory is not empty"
fi
意味:
- ls -A /パス/ディレクトリ 配下のすべてのファイルそしてサブディレクトリをリストしますが、.と..ディレクトリは除外されます。
- (…) はコマンドの出力を文字列で返します。
- 文字列が空文字かどうかをチェックします。
なので、もしディレクトリが空であれば `ls -A /path/to/directory` は何も結果を返さず、`-z “$(ls -A /path/to/directory)”` の結果は空文字列ですが、もしディレクトリが空ではなければ `-z “$(ls -A /path/to/directory)”` の結果は空文字列ではありません。
必要に応じて、/path/to/directory を判別したいディレクトリの実際のパスに置き換えてください。