Format von Dateigrösse und Datum in bash anpassen

Ausmessen

Schon oft hatte ich das Problem unter Linux, dass die Dateigrössen und auch die Änderungszeit von Dateien zwar in einem für angeblich für Menschen verständlichen Format ausgegeben werden, aber gut lesbar oder sogar vergleichbar sind diese nicht.

Auch die Ausgabe mit -h bei ls hilft mir wenig, da damit die Einheiten (Keine Angabe für Byte, K für Kilobyte, M für Megabyte) gemischt dargestellt werden und somit die Dateigrössen nicht auf einen Blick vergleichbar sind. Auch ist das Datumsformat einmal mit Monat, Tag und Uhrzeit angegeben, wenn die Datei jedoch aus einem anderen als dem aktuellen Jahr ist (hier in der Ausgabe das Verzeichnis proc), wechselt das Format zu Monat, Tag und Jahr. Dass in der Spalte einmal die Uhrzeit und ein anderes mal die Zeit steht finde ich nicht übersichtlich.

ls -lh / insgesamt 75K drwxr-xr-x 2 root root 4,0K Mai 22 20:09 bin drwxr-xr-x 4 root root 2,5K Mai 22 20:12 boot -rw-r--r-- 1 root root 1,7K Mai 22 20:21 certbot.log drwxr-xr-x 14 root root 3,2K Mai 22 10:17 dev drwxr-xr-x 87 root root 4,0K Mai 23 16:33 etc drwxr-xr-x 3 root root 4,0K Mai 18 10:31 home drwxr-xr-x 17 root root 4,0K Mai 22 20:09 lib drwx------ 2 root root 16K Apr 10 09:57 lost+found drwxr-xr-x 2 root root 4,0K Apr 10 09:10 media drwxr-xr-x 2 root root 4,0K Mai 18 17:29 mnt drwxr-xr-x 3 root root 4,0K Apr 10 09:17 opt dr-xr-xr-x 125 root root 0 Jan 1 1970 proc drwx------ 7 root root 4,0K Mai 23 16:27 root drwxr-xr-x 20 root root 780 Mai 22 20:11 run drwxr-xr-x 2 root root 4,0K Mai 22 20:10 sbin drwxr-xr-x 2 root root 4,0K Apr 10 09:10 srv dr-xr-xr-x 12 root root 0 Mai 22 20:03 sys drwxrwxrwt 8 root root 4,0K Mai 23 18:17 tmp drwxr-xr-x 10 root root 4,0K Apr 10 09:10 usr drwxr-xr-x 12 root root 4,0K Mai 22 20:21 var

Am Beispiel mit df -h wird dieses Problem offensichtlicher. Hier kann die Grösse erst korrekt erkannt werden kann, wenn bei jedem Eintrag die Einheit gelesen wird.

df -h Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf /dev/root 30G 3,1G 26G 11% / devtmpfs 486M 0 486M 0% /dev tmpfs 490M 0 490M 0% /dev/shm tmpfs 490M 19M 471M 4% /run tmpfs 5,0M 4,0K 5,0M 1% /run/lock tmpfs 490M 0 490M 0% /sys/fs/cgroup /dev/mmcblk0p1 41M 21M 20M 52% /boot

Zeitformat

Um die Zeitangabe bei ls im ISO-Format anzuzeigen muss TIME_STYLE=long-iso in die ~/.bashrc mit folgendem Befehl hinzugefügt werden. Da das Format in die Datei ~/.bashrc bei vom aktuellen Benutzer hinzugefügt wird und nur bei diesem Auswirkungen hat, muss diese Einstellungen bei anderen Benutzern ebenfalls durchgeführt werden, falls dieser ein anderen Format in der Ausgabe haben möchte.

echo "export TIME_STYLE=long-iso" | tee -a ~/.bashrc

Dateigrösse

Auch diese Einstellung wird nur für den aktuellen Benutzer durchgeführt.

echo "export BLOCK_SIZE=\"'1\"" | tee -a ~/.bashrc

Ergebnisse

Sowohl die Grösse von Verzeichnissen und Dateien werden jetzt mit einem Tausendertrennzeichen angezeigt und auch das Datum ist jetzt einheitlich.

insgesamt 76.288 drwxr-xr-x 2 root root 4.096 2017-05-22 20:09 bin drwxr-xr-x 4 root root 2.560 2017-05-22 20:12 boot -rw-r--r-- 1 root root 1.708 2017-05-22 20:21 certbot.log drwxr-xr-x 14 root root 3.260 2017-05-22 10:17 dev drwxr-xr-x 83 root root 4.096 2017-05-22 20:19 etc drwxr-xr-x 3 root root 4.096 2017-05-18 10:31 home drwxr-xr-x 17 root root 4.096 2017-05-22 20:09 lib drwx------ 2 root root 16.384 2017-04-10 09:57 lost+found drwxr-xr-x 2 root root 4.096 2017-04-10 09:10 media drwxr-xr-x 2 root root 4.096 2017-05-18 17:29 mnt drwxr-xr-x 3 root root 4.096 2017-04-10 09:17 opt dr-xr-xr-x 125 root root 0 1970-01-01 00:00 proc drwx------ 4 root root 4.096 2017-05-22 20:22 root drwxr-xr-x 20 root root 780 2017-05-22 20:11 run drwxr-xr-x 2 root root 4.096 2017-05-22 20:10 sbin drwxr-xr-x 2 root root 4.096 2017-04-10 09:10 srv dr-xr-xr-x 12 root root 0 2017-05-22 20:03 sys drwxrwxrwt 7 root root 4.096 2017-05-22 20:31 tmp drwxr-xr-x 10 root root 4.096 2017-04-10 09:10 usr drwxr-xr-x 12 root root 4.096 2017-05-22 20:21 var

Auch die Ausgabe von anderen Programmen wie df für die Speicherverwendung von Mountpoints ist jetzt entsprechend formatiert.

df Dateisystem 1B-Blöcke Benutzt Verfügbar Verw% Eingehängt auf /dev/root 31.460.159.488 3.204.505.600 26.951.512.064 11% / devtmpfs 508.854.272 0 508.854.272 0% /dev tmpfs 513.290.240 0 513.290.240 0% /dev/shm tmpfs 513.290.240 6.795.264 506.494.976 2% /run tmpfs 5.242.880 4.096 5.238.784 1% /run/lock tmpfs 513.290.240 0 513.290.240 0% /sys/fs/cgroup /dev/mmcblk0p1 42.313.728 21.895.680 20.418.048 52% /boot

Diese Anzeige ist zwar Anfangs ungewohnt, jedoch kann schnell zwischen den Grössen unterschieden werden ohne erst die Einheit in jeder Zeile lesen zu müssen.

Veröffentlicht in Linux

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.