Vítejte v našem tutoriálu, jak používat příkaz zkrátit v Linuxu. Příkaz zkrátit Linux se často používá ke zmenšení nebo rozšíření velikosti každého SOUBORu na zadanou velikost. Konečná velikost souboru závisí na iniciále. Pokud je SOUBOR (například archiv nebo soubory protokolu) větší než zadaná velikost, nadbytečná data se ztratí, ale pokud je SOUBOR kratší, rozšíří se a rozšířená část (díra) se čte jako nula bajtů.
Zobrazené příkazy byly testovány na počítači CentOS 7 a serveru Ubuntu 16.04. Většina distribucí Linuxu se dodává s příkazem truncate. Pokud váš systém nemá příkaz zkrátit, pro systém Ubuntu/Debian jej poskytuje balíček coreutils.
$ sudo apt-get install coreutils
$ dpkg -l | grep coreutils
coreutils 8.25-2ubuntu3~16.04 amd64 GNU core utilities
Pro 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
Pokud není nainstalován, použijte:
$ sudo yum-y install coreutils
Běžné možnosti zkrácení
-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
Při použití zkrátit VELIKOST argument musí být celé číslo a volitelná jednotka (příklad:10K je 10*1024). Použité jednotky jsou K, M, G, T, P, E, Z, Y (mocniny 1024) nebo KB, MB ,...(jako mocniny 1000).
Před argumentem SIZE může být také jeden z následujících modifikujících znaků:'+ ' rozšířit o, '- ' snížit o, '< ' maximálně ' ' alespoň '/ ' zaokrouhlit dolů na násobek, '% ' zaokrouhlit nahoru na násobek.
Příklady použití zkrácení
Níže jsou uvedeny nejběžnější příklady použití příkazu truncate.
1. Vymazat obsah souboru pomocí zkrácení
# truncate -s 0 file
To je užitečné například pro soubory mazání protokolů. Je to lepší, než ručně mazat soubor a možná se dotknout nového. Proces zkrácení v podstatě odstraní veškerý obsah souboru. Samotný soubor neodstraní, ale ponechá jej na disku jako soubor s nulovým bajtem. Jako příklad vyčistíme /var/log/syslog na 0 bajtů pomocí zkrácení.
# du -sh /var/log/syslog
616K /var/log/syslog
# truncate -s 0 /var/log/syslog
Pokud znovu zkontrolujeme velikost souboru, měla by být 0 bajtů.
# du -sh /var/log/syslog
0 /var/log/syslog
Všimněte si, že příkaz zkrátit si zachová oprávnění k souboru a vlastnictví. Můžete to potvrdit pomocí ls -lh příkazy:
# ls -lh /var/log/syslog
-rw-r----- 1 syslog adm 0 Mar 17 18:34 /var/log/syslog
2. Zkrácení souboru na určitou velikost
Níže uvedený příklad zkrátí soubor na velikost 100 bajtů.
# 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
Nyní zkontrolujte velikost souboru:
# ls -lh soubor.txt
-rw-r--r-- 1 kořenový adresář 100 17. března 18:40 soubor.txt
Chcete-li zkrátit soubor na 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 a Y lze podle potřeby použít místo "K".
3. Rozšiřte velikost souboru pomocí zkrácení
Můžete také rozšířit velikost souboru z aktuálního do požadovaného stavu. Použijte možnost -s s + ve velikosti.
$ 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
Tím se zvětší velikost souboru ze 100 kB na 300 kB přidáním dalších 200 kB.
4. Zmenšete velikost souboru pomocí zkrácení
Řekněme, že máte soubor o velikosti 500 kB a chtěli byste jej zmenšit na 250 kB. Použijete -s možnost s - v uvedené velikosti. Např.
$ 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
Můžete vidět aktuální velikost změněnou na 250 kB.
Závěr
Tento tutoriál, doufám, vám pomohl porozumět příkazu zkrácení Linuxu ke změně souboru na zadanou velikost. Podělte se o své návrhy a myšlenky v sekci komentářů níže.