¿Cómo comprobar si un archivo está vacío en Bash?
Tengo un archivo llamado diff.txt . Quiero comprobar si está vacío.
Escribí un script bash similar al siguiente, pero no pude hacerlo funcionar.
if [ -s diff.txt ]
then
touch empty.txt
rm full.txt
else
touch full.txt
rm emtpy.txt
fi
Aceptado
prueba esto:
#!/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
Por cierto, observe que he cambiado los roles de empty.txt
y full.txt
, como sugiere @Matthias.
[ -s file.name ] || echo "file is empty"
[ -s file ] # Checks if file has size greater than 0
[ -s diff.txt ] && echo "file has something" || echo "file is empty"
Si es necesario, esto verifica todos los archivos *.txt en el directorio actual; e informa todo el archivo vacío:
for file in *.txt; do if [ ! -s $file ]; then echo $file; fi; done