GNU/Linux >> Znalost Linux >  >> Linux

Jak zkrátit (prázdné) soubory v Linuxu

V některých situacích můžete chtít zkrátit (vyprázdnit) existující soubor na nulovou délku. Jednoduše řečeno, zkrácení souboru znamená odstranění obsahu souboru bez smazání souboru.

Zkrácení souboru je mnohem rychlejší a jednodušší než smazání souboru, jeho opětovné vytvoření a nastavení správných oprávnění a vlastnictví. Pokud je soubor otevřen procesem, odstranění souboru může způsobit poruchu programu, který jej používá.

Tento tutoriál vysvětluje, jak zkrátit soubory na nulovou velikost v systémech Linux pomocí přesměrování shellu a truncate příkaz.

Přesměrování prostředí #

Nejjednodušší a nejpoužívanější metodou pro zkrácení souborů je použití > operátor přesměrování shellu.

Obecný formát pro zkrácení souborů pomocí přesměrování je:

: > filename

Rozeberme si příkaz:

  • The : dvojtečka znamená true a neprodukuje žádný výstup.
  • Operátor přesměrování > přesměrovat výstup předchozího příkazu do daného souboru.
  • filename , soubor, který chcete zkrátit.

Pokud soubor existuje, bude zkrácen na nulu. V opačném případě bude soubor vytvořen.

Místo : může také použít jiný příkaz, který neprodukuje žádný výstup.

Zde je příklad použití cat příkaz pro výstup obsahu /dev/null zařízení, které vrací pouze znak konce souboru:

cat /dev/null > filename

Další příkaz, který lze použít, je echo . -n volba říká echo nepřidávat nový řádek:

echo -n > filename

Na většině moderních shellů, jako je Bash nebo Zsh, můžete vynechat příkaz před symbolem přesměrování a použít:

> filename

Abyste mohli zkrátit soubor, musíte mít oprávnění k zápisu do souboru. Obvykle byste použili sudo za to, ale zvýšená oprávnění root se na přesměrování nevztahují. Zde je příklad:

sudo : > /var/log/syslog
bash: /var/log/syslog: Permission denied

Existuje několik řešení, která umožňují přesměrování pomocí sudo . První možnost může spustit nový shell pomocí sudo a spustit příkaz uvnitř tohoto shellu pomocí -c příznak:

sudo sh -c '> filename'

Další možností je nasměrovat výstup do tee zvedněte tee oprávnění pomocí sudo a zapište prázdný výstup do daného souboru:

: | sudo tee filename

truncate Příkaz #

truncate je nástroj příkazového řádku, který vám umožňuje zmenšit nebo rozšířit velikost souboru na danou velikost.

Obecná syntaxe pro zkrácení souborů na nulovou velikost pomocí truncate příkaz, je následující:

truncate -s 0 filename

-s 0 volba nastaví velikost souboru na nulu.

Například k vyprázdnění protokolu přístupu Nginx byste použili:

sudo truncate -s 0 /var/log/nginx/access.log

Vyprázdnit všechny soubory protokolu #

Časem může být váš disk zaplněn spoustou velkých souborů protokolu, které zabírají velké množství místa na disku.

Následující příkaz vyprázdní soubory končící na „.log“ pod /var/log adresář:

sudo truncate -s 0 /var/log/**/*.log 

Lepší možností by bylo otáčet, komprimovat a odstraňovat soubory protokolů pomocí logrotate nástroj.

Závěr č.

Ke zkrácení souboru v Linuxu použijte operátor přesměrování > následovaný názvem souboru.

Pokud máte nějaké dotazy nebo připomínky, zanechte prosím níže komentář.


Linux
  1. Jak vyprázdnit soubor protokolu v Linuxu

  2. Jak přejmenovat soubor v Linuxu?

  3. Jak používat Netcat k přenosu souborů v systému Linux

  1. Jak převést soubory do kódování UTF-8 v Linuxu

  2. Jak vyprázdnit (zkrátit) soubor na linuxu, který již existuje a je nějakým způsobem chráněn?

  3. linuxový příkaz k vyprázdnění všech souborů v adresáři

  1. Jak přesunout soubor v Linuxu

  2. Jak zobrazit nebo změnit ACL v souborech Linux

  3. Jak extrahovat soubory .gz a .tar.gz v Linuxu