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ů.
Pozor :Než se podíváme na různé způsoby, všimněte si, ž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 kritické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 použili soubor access.log
v následujících příkladech.
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ázdnit soubor pomocí „skutečného“ přesměrování příkazů
Zde použijeme symbol :
je vestavěný příkaz shellu, který je v podstatě ekvivalentní příkazu true
příkaz a lze jej použít jako neoperativní (bez operace).
Další metodou je přesměrování výstupu :
nebo true
vestavěný příkaz do souboru takto:
# : > access.log OR # true > access.log
3. Vyprázdnit soubor Pomocí obslužných programů cat/cp/dd s /dev/null
V Linuxu null
Zařízení se v zásadě používá pro vyřazení nechtěných výstupních toků procesu nebo jako vhodný prázdný soubor pro vstupní toky. To se běžně provádí mechanismem přesměrování.
A /dev/null
soubor zařízení 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.
Kromě toho můžete obsah souboru vyprázdnit přesměrováním výstupu z /dev/null
do něj (souboru) 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 if
znamená vstupní soubor a of
odkazuje na výstupní soubor.
# dd if=/dev/null of=access.log
4. Vyprázdnit 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, i když 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).
Pro odeslání nulového výstupu do souboru 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ázdnit soubor pomocí příkazu zkrátit
zkrácení příkaz pomáhá zmenšit nebo rozšířit velikost souboru na definovanou velikost.
Můžete jej použít pomocí -s
možnost, 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 se zabývali několika způsoby vymazání nebo vyprázdnění obsahu souboru pomocí jednoduchých nástrojů příkazového řádku a mechanismu 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.