Meges előfordulhat, hogy a Linux terminálban lévő fájlok kezelése során törölni szeretné egy fájl tartalmát anélkül, hogy feltétlenül meg kellene nyitnia azt bármelyik Linux parancssori szerkesztőprogrammal. Hogyan lehet ezt elérni? Ebben a cikkben a fájlok tartalmának kiürítésének többféle módját tekintjük át néhány hasznos parancs segítségével.
Vigyázat! Mielőtt rátérnénk a különböző módszerek megtekintésére, vegyük figyelembe, hogy mivel a Linuxban minden egy fájl, mindig meg kell győződnünk arról, hogy az ürítendő fájl(ok) nem fontos felhasználói vagy rendszerfájlok. Egy kritikus rendszer- vagy konfigurációs fájl tartalmának törlése végzetes alkalmazás/rendszerhibához vagy meghibásodáshoz vezethet.
Az alábbiakban bemutatjuk a fájlok tartalmának parancssorból történő törlésének módjait.
Fontos: A cikk céljaira a következő példákban a access.log
fájlt használtuk.
Fájl tartalmának kiürítése a nullára való átirányítással
A legegyszerűbb módja egy fájl tartalmának kiürítésének vagy ürítésének a shell null
(nem létező objektum) átirányításával a fájlra az alábbiak szerint:
# > access.log
Empty File Using ‘true’ Command Redirection
Itt egy szimbólumot fogunk használni :
egy beépített shell parancs, amely lényegében megegyezik a true
paranccsal, és használható no-op (nincs művelet).
Egy másik módszer a :
vagy a true
beépített parancs kimenetének átirányítása a fájlba a következőképpen:
# : > access.logOR # true > access.log
Empty File Using cat/cp/dd utilities with /dev/null
A Linuxban a null
eszközt alapvetően egy folyamat nem kívánt kimeneti adatfolyamainak eldobására, illetve a bemeneti adatfolyamok számára megfelelő üres fájlként használják. Ez általában átirányítási mechanizmussal történik.
A /dev/null
eszközfájl tehát egy olyan speciális fájl, amely minden hozzá küldött bemenetet leír (eltávolít), vagy a kimenete megegyezik egy üres fájléval.
Kiegészítésképpen kiüríthetjük egy fájl tartalmát úgy, hogy a cat parancs segítségével a /dev/null
kimenetét átirányítjuk rá (fájlra) bemenetként:
# cat /dev/null > access.log
A következőkben a cp parancsot fogjuk használni egy fájl tartalmának kiürítésére az ábrán látható módon.
# cp /dev/null access.log
A következő parancsban a if
a bemeneti fájlt jelenti, a of
pedig a kimeneti fájlra utal.
# dd if=/dev/null of=access.log
Empty File Using echo Command
Itt az echo parancsot használhatja üres karakterlánccal, és átirányíthatja a fájlba az alábbiak szerint:
# echo "" > access.logOR# echo > access.log
Megjegyzés: Ne feledje, hogy az üres karakterlánc nem azonos a nullával. Egy karakterlánc már egy objektum sokkal inkább lehet üres, míg a null egyszerűen egy objektum nem-létét jelenti.
Ezért, amikor a fenti echo parancs kimenetét átirányítjuk a fájlba, és a cat paranccsal megtekintjük a fájl tartalmát, egy üres sort (üres karakterláncot) ír ki.
A null kimenet fájlba küldéséhez használjuk a -n
flag-et, amely azt mondja az echo parancsnak, hogy ne adja ki az előző parancsban előállított üres sorhoz vezető utolsó új sort.
# echo -n "" > access.log
Empty File Using truncate Command
A truncate parancs segítségével a fájl mérete egy meghatározott méretre zsugorítható vagy bővíthető.
A fájl méretét megadó -s
opcióval együtt alkalmazhatjuk. Egy fájl tartalmának kiürítéséhez használjon 0 (nulla) méretet, mint a következő parancsban:
# truncate -s 0 access.log
Előre ennyi, ebben a cikkben a fájl tartalmának törlésére vagy kiürítésére egyszerű parancssori segédprogramok és a shell átirányítási mechanizmusának segítségével többféle módszerrel foglalkoztunk.
Valószínűleg nem ezek az egyetlen elérhető gyakorlati módszerek, ezért az alábbi visszajelzés rovatban elárulhat nekünk minden egyéb, ebben az útmutatóban nem említett módszert is.