GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie überprüfe ich, ob eine Datei in Bash leer ist?

[ -s file.name ] || echo "file is empty"

Rechtschreibfehler sind irritierend, nicht wahr? Überprüfen Sie Ihre Schreibweise von empty , aber versuchen Sie es dann auch so:

#!/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

Ich mag Shell-Scripting sehr, aber ein Nachteil davon ist, dass die Shell Ihnen bei Rechtschreibfehlern nicht helfen kann, während ein Compiler wie Ihr C++-Compiler Ihnen helfen kann.

Beachten Sie nebenbei, dass ich die Rollen von empty.txt vertauscht habe und full.txt , wie @Matthias vorschlägt.


[ -s file ] # Checks if file has size greater than 0

[ -s diff.txt ] && echo "file has something" || echo "file is empty"

Bei Bedarf prüft dies alle *.txt-Dateien im aktuellen Verzeichnis; und meldet alle leeren Dateien:

for file in *.txt; do if [ ! -s $file ]; then echo $file; fi; done

Linux
  1. Wie überprüfe ich, ob Bash eine Shellshock-Schwachstelle hat?

  2. So überprüfen Sie die Syntax von Sudoers

  3. So prüfen Sie, ob String in Bash einen Teilstring enthält

  4. Wie überprüfe ich Syslog in Bash unter Linux?

  5. Wie konvertiert man ISO8859-15 in UTF8?

So überprüfen Sie, ob eine Datei oder ein Verzeichnis in Bash vorhanden ist

So lesen Sie eine Datei Zeile für Zeile in Bash

So prüfen Sie, ob eine Zeichenfolge in Bash eine Teilzeichenfolge enthält

So kürzen Sie (leere) Dateien in Linux

So leiten Sie stderr in Bash auf stdout um

So überprüfen Sie, ob eine Datei oder ein Verzeichnis in der Bash-Shell vorhanden ist