[ -s file.name ] || echo "file is empty"
スペルミスはイライラしますね。 empty
のスペルを確認してください 、しかし、これも試してください:
#!/bin/bash -e
if [ -s diff.txt ]; then
# The file is not-empty.
rm -f empty.txt
touch full.txt
else
# The file is empty.
rm -f full.txt
touch empty.txt
fi
私はシェル スクリプトが大好きですが、シェル スクリプトの欠点の 1 つは、スペルを間違えたときにシェルが役に立たないことです。一方、C++ コンパイラのようなコンパイラが役に立ちます。
ちなみに、empty.txt
の役割を入れ替えたことに注意してください。 そして full.txt
、@Matthias が示唆するように。
[ -s file ] # Checks if file has size greater than 0
[ -s diff.txt ] && echo "file has something" || echo "file is empty"
必要に応じて、現在のディレクトリ内のすべての *.txt ファイルがチェックされます。すべての空のファイルを報告します:
for file in *.txt; do if [ ! -s $file ]; then echo $file; fi; done