Vyhledávání na webu

5 způsobů, jak vyprázdnit nebo odstranit obsah velkého souboru v systému Linux


Občas, když pracujete se soubory v linuxovém terminálu, možná budete chtít vymazat obsah souboru, aniž byste jej museli nutně otevírat pomocí jakéhokoli linuxového editoru příkazového řádku. Jak toho lze dosáhnout?

V tomto článku si projdeme několik různých způsobů vyprázdnění obsahu souboru pomocí některých užitečných příkazů.

Upozornění: Než se podíváme na různé způsoby, mějte na paměti, že protože v Linuxu je vše soubor, musíte se vždy ujistit, že soubory, které vyprazdňujete, nejsou důležité uživatelské nebo systémové soubory . Vymazání obsahu důležitého systému nebo konfiguračního souboru může vést k fatální chybě nebo selhání aplikace/systému.

Níže jsou uvedeny prostředky pro vymazání obsahu souboru z příkazového řádku.

Důležité: Pro účely tohoto článku jsme v následujících příkladech použili soubor access.log.

1. Vyprázdněte obsah souboru přesměrováním na Null

Nejjednodušší způsob, jak vyprázdnit nebo vymazat obsah souboru pomocí přesměrování shellu null (neexistující objekt) do souboru, jak je uvedeno níže:

> access.log

2. Vyprázdněte soubor pomocí „skutečného“ přesměrování příkazů

Zde použijeme symbol : je příkaz vestavěný do shellu, který je v podstatě ekvivalentní příkazu true a lze jej použít jako ne-op (žádná operace) .

Další metodou je přesměrování výstupu vestavěného příkazu : nebo true do souboru takto:

: > access.log
OR 
true > access.log

3. Vyprázdněte soubor Pomocí obslužných programů cat/cp/dd s /dev/null

V Linuxu se zařízení null v zásadě používá pro vyřazení nechtěných výstupních proudů procesu nebo jako vhodný prázdný soubor pro vstupní proudy. To se obvykle provádí mechanismem přesměrování.

A soubor zařízení /dev/null je tedy speciální soubor, který odepíše (odstraní) jakýkoli vstup, který mu byl odeslán, nebo jeho výstup je stejný jako u prázdného souboru.

Navíc můžete vyprázdnit obsah souboru přesměrováním výstupu /dev/null na něj (soubor) jako vstup pomocí příkazu cat:

cat /dev/null > access.log

Dále použijeme příkaz cp k vymazání obsahu souboru, jak je znázorněno.

cp /dev/null access.log

V následujícím příkazu dd if znamená vstupní soubor a of odkazuje na výstupní soubor.

dd if=/dev/null of=access.log

4. Vyprázdněte soubor pomocí příkazu echo

Zde můžete použít příkaz echo s prázdným řetězcem a přesměrovat jej do souboru následovně:

echo "" > access.log
OR
echo > access.log

Poznámka: Měli byste mít na paměti, že prázdný řetězec není totéž jako null. Řetězec je již objekt, protože může být prázdný, zatímco null jednoduše znamená neexistenci objektu.

Z tohoto důvodu, když přesměrujete příkaz out of echo výše do souboru a zobrazíte obsah souboru pomocí příkazu cat, vypíše se prázdný řádek (prázdný řetězec).

Chcete-li do souboru odeslat nulový výstup, použijte parametr -n, který říká echo, aby nevypisoval koncový nový řádek, který vede na prázdný řádek vytvořený v předchozím příkazu.

echo -n "" > access.log

5. Vyprázdněte soubor pomocí příkazu zkrátit

Příkaz truncate pomáhá zmenšit nebo rozšířit velikost souboru na definovanou velikost.

Můžete jej použít s volbou -s, která určuje velikost souboru. Chcete-li vyprázdnit obsah souboru, použijte velikost 0 (nula) jako v následujícím příkazu:

truncate -s 0 access.log

To je prozatím vše, v tomto článku jsme pokryli několik metod vymazání nebo vyprázdnění obsahu souboru pomocí jednoduchých nástrojů příkazového řádku a mechanismů přesměrování shellu.

Toto pravděpodobně nejsou jediné dostupné praktické způsoby, jak toho dosáhnout, takže nám můžete také říci o všech dalších metodách, které nejsou uvedeny v této příručce, prostřednictvím sekce zpětné vazby níže.