Fra og til, mens du arbejder med filer i Linux-terminalen, vil du måske gerne rydde indholdet af en fil uden nødvendigvis at åbne den ved hjælp af en Linux-kommandolinjeeditor. Hvordan kan dette opnås? I denne artikel vil vi gennemgå flere forskellige måder at tømme filindholdet på ved hjælp af nogle nyttige kommandoer.
Varsel: Før vi går videre til at se på de forskellige måder, skal du være opmærksom på, at fordi alt i Linux er en fil, skal du altid sikre dig, at den eller de filer, du tømmer, ikke er vigtige bruger- eller systemfiler. Tømning af indholdet af en kritisk system- eller konfigurationsfil kan føre til en fatal program-/systemfejl eller fejl.
Med det sagt, er der nedenfor metoder til at tømme filindhold fra kommandolinjen.
Vigtigt: I forbindelse med denne artikel har vi brugt filen access.log
i de følgende eksempler.
Tøm filindhold ved at omdirigere til nul
En nemmeste måde at tømme eller tømme et filindhold ved hjælp af shell redirect null
(ikke-eksisterende objekt) til filen som nedenfor:
# > access.log
Tøm fil ved hjælp af ‘true’ Command Redirection
Her vil vi bruge et symbol :
er en shell indbygget kommando, der er essensen svarende til kommandoen true
, og den kan bruges som en no-op (ingen operation).
En anden metode er at omdirigere output af :
eller true
indbygget kommando til filen på følgende måde:
# : > access.logOR # true > access.log
Tøm fil ved hjælp af cat/cp/dd-værktøjerne med /dev/null
I Linux anvendes null
-enheden grundlæggende til kassation af uønskede outputstrømme fra en proces eller ellers som en passende tom fil til inputstrømme. Dette gøres normalt ved hjælp af en omdirigeringmekanisme.
Og enhedsfilen /dev/null
er derfor en særlig fil, der afskriver (fjerner) ethvert input, der sendes til den, eller dens output er det samme som en tom fil.
Derudover kan du tømme indholdet af en fil ved at omdirigere output af /dev/null
til den (filen) som input ved hjælp af kommandoen cat:
# cat /dev/null > access.log
Næste gang vil vi bruge kommandoen cp til at tømme indholdet af en fil som vist.
# cp /dev/null access.log
I følgende kommando betyder if
inputfilen og of
refererer til outputfilen.
# dd if=/dev/null of=access.log
Tomt filindhold ved hjælp af echo Kommando
Her kan du bruge en echo kommando med en tom streng og omdirigere den til filen som følger:
# echo "" > access.logOR# echo > access.log
Bemærk: Du skal huske på, at en tom streng ikke er det samme som nul. En streng er allerede et objekt, ligesom den kan være tom, mens null blot betyder ikke-eksistens af et objekt.
Der er derfor, når du omdirigerer ud fra echo kommandoen ovenfor til filen, og ser filens indhold ved hjælp af kommandoen cat, udskriver en tom linje (tom streng).
For at sende et nul output til filen skal du bruge flaget -n
, som fortæller echo, at det ikke skal udgive den efterfølgende newline, der fører til den tomme linje, der blev produceret i den foregående kommando.
# echo -n "" > access.log
Tomme filer ved hjælp af truncate-kommandoen
Truncate-kommandoen hjælper med at skrumpe eller udvide størrelsen af en fil til en defineret størrelse.
Du kan anvende den med -s
-indstillingen, der angiver filstørrelsen. For at tømme et filindhold skal du bruge en størrelse på 0 (nul) som i den næste kommando:
# truncate -s 0 access.log
Det er alt for nu, i denne artikel har vi dækket flere metoder til at rydde eller tømme filindhold ved hjælp af simple kommandolinjeværktøjer og shell-omdirigeringsmekanisme.
Dette er sandsynligvis ikke de eneste tilgængelige praktiske måder at gøre dette på, så du kan også fortælle os om andre metoder, der ikke er nævnt i denne vejledning, via feedback-sektionen nedenfor.