Willkommen zu unserem Tutorial zur Verwendung des Befehls truncate unter Linux. Der Linux-Befehl truncate wird häufig verwendet, um die Größe jeder DATEI auf die angegebene Größe zu verkleinern oder zu erweitern. Die endgültige Größe der Datei hängt von der ursprünglichen ab. Wenn eine DATEI (z. B. Archiv- oder Protokolldateien) größer als die angegebene Größe ist, gehen die zusätzlichen Daten verloren, aber wenn eine DATEI kürzer ist, wird sie erweitert und der erweiterte Teil (Löcher) wird als null Bytes gelesen.
Die gezeigten Befehle wurden auf einem CentOS 7-Computer und einem Ubuntu 16.04-Server getestet. Die meisten Linux-Distributionen werden mit dem Befehl truncate ausgeliefert. Wenn Ihr System keinen truncate-Befehl hat, wird er für Ubuntu/Debian-Systeme vom coreutils-Paket bereitgestellt.
$ sudo apt-get install coreutils
$ dpkg -l | grep coreutils
coreutils 8.25-2ubuntu3~16.04 amd64 GNU core utilities
Für CentOS 7:
# yum provides truncate
coreutils-8.22-18.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
Repo : base
Matched from:
Filename : /usr/bin/truncate
Falls nicht installiert, verwenden Sie:
$ sudo yum-y install coreutils
Allgemeine Optionen zum Abschneiden
-c, --no-create --> do not create any files
-o, --io-blocks --> treat SIZE as number of IO blocks instead of bytes
-r, --reference=RFILE --> base size on RFILE
-s, --size=SIZE --> set or adjust the file size by SIZE bytes
--help --> display this help and exit
--version --> output version information and exit
Beim Abschneiden wird die SIZE Argument muss eine Ganzzahl und eine optionale Einheit sein (Beispiel:10K ist 10*1024). Die verwendeten Einheiten sind K, M, G, T, P, E, Z, Y (Potenzen von 1024) oder KB, MB ,...(als Potenzen von 1000).
Dem SIZE-Argument kann auch eines der folgenden Änderungszeichen vorangestellt werden:'+ ' erweitern um, '- ' reduzieren um, '< ' höchstens '> ' zumindest '/ ' auf ein Vielfaches von '% abrunden ' auf ein Vielfaches von aufrunden.
Beispiele für die Verwendung von Kürzungen
Nachfolgend finden Sie die häufigsten Verwendungsbeispiele des Befehls truncate.
1. Löschen Sie den Inhalt einer Datei mit truncate
# truncate -s 0 file
Dies ist z. B. für das Löschen von Protokolldateien nützlich. Das ist besser, als eine Datei manuell zu löschen und vielleicht eine Berührung für die neue zu machen. Der Kürzungsprozess entfernt grundsätzlich den gesamten Inhalt der Datei. Die Datei selbst wird nicht entfernt, sondern als Null-Byte-Datei auf der Festplatte belassen. Als Beispiel löschen wir unser /var/log/syslog auf 0 Bytes mit truncate.
# du -sh /var/log/syslog
616K /var/log/syslog
# truncate -s 0 /var/log/syslog
Wenn wir die Dateigröße erneut überprüfen, sollte sie 0 Byte betragen.
# du -sh /var/log/syslog
0 /var/log/syslog
Beachten Sie, dass der Befehl truncate die Dateiberechtigungen und den Besitz behält. Sie können dies mit ls -lh bestätigen Befehle:
# ls -lh /var/log/syslog
-rw-r----- 1 syslog adm 0 Mar 17 18:34 /var/log/syslog
2. Um eine Datei auf eine bestimmte Größe zu kürzen
Das folgende Beispiel kürzt eine Datei auf eine Größe von 100 Byte.
# touch file.txt
# ls -lh file.txt
-rw-r--r-- 1 root root 0 Mar 17 18:39 file.txt
# truncate -s 100 file.txt
Prüfen Sie nun die Dateigröße:
# ls -lh Datei.txt
-rw-r--r-- 1 root root 100 Mar 17 18:40 file.txt
So kürzen Sie eine Datei auf 100 KB:
# truncate -s 100K file.txt
# ls -lh file.txt
-rw-r--r-- 1 root root 100K Mar 17 18:41 file.txt
M, G, T, P, E, Z und Y können nach Bedarf anstelle von "K" verwendet werden.
3. Erweitern Sie die Dateigröße mit truncate
Sie können auch die Größe der Datei vom aktuellen auf den gewünschten Status erweitern. Verwenden Sie die Option -s mit einem + in der Größe.
$ touch file.txt
$ truncate -s 100K file.txt
$ ls -lh file.txt
-rw-r--r-- 1 jmutai wheel 100K Mar 18 13:12 file.txt
$ truncate -s +200K file.txt
$ ls -lh file.txt
-rw-r--r-- 1 jmutai wheel 300K Mar 18 13:12 file.txt
Dadurch wird die Dateigröße von 100 KB auf 300 KB erweitert, indem zusätzliche 200 KB hinzugefügt werden.
4. Reduzieren Sie die Dateigröße mit truncate
Angenommen, Sie haben eine 500 KB große Datei und möchten sie auf 250 KB verkleinern Sie verwenden das -s Option mit einem - in der angegebenen Größe. Z. B.
$ ls -lh file.txt -rw-r--r-- 1 jmutai wheel 500K Mar 18 13:15 file.txt
$ truncate -s -250K file.txt
$ ls -lh file.txt
-rw-r--r-- 1 jmutai wheel 250K Mar 18 13:15 file.txt
Sie können sehen, dass sich die aktuelle Größe auf 250 KB geändert hat.
Schlussfolgerung
Dieses Tutorial hat Ihnen hoffentlich geholfen, den Linux-Truncate-Befehl zu verstehen, um die Datei auf die angegebene Größe zu ändern. Bitte teilen Sie Ihre Vorschläge und Gedanken im Kommentarbereich unten mit.