if [[ -s log.txt ]];
¿Qué significa -s? Sé que -z significa cadena de tamaño cero. No puedo encontrar ninguna documentación sobre -s.
Qué significa [] o [[]], mientras escribo una condición if. He usado if sin [] o [[]] y funcionó bien.
Respuesta
La prueba -s devuelve verdadero si
[…] si el archivo existe y tiene un tamaño mayor que cero
Esto está documentado en el manual bash, y también en el manual para la utilidad test (la prueba también se puede escribir if test -s file; then).
Para [ ... ] y [[ ... ]], consulte: Bash – Si hay confusión de sintaxis
Respuesta
-s ARCHIVO: – El ARCHIVO existe y tiene un tamaño mayor que cero.
La parte […] permite probar una condición utilizando operadores. Piense en ello como una declaración if. En su ejemplo, está utilizando el operador -s, que prueba que el archivo referenciado no está vacío.