Hvordan finne og slette filer i Linux

Hvordan finne og slette filer i Linux
Denne opplæringen forklarer hvordan du kombinerer Linux Find Command med andre for å søke og slette filene med en enkelt kommandoutførelse.

Etter å ha lest denne opplæringen, vil du vite hvordan du forenkler oppgaven med å fjerne filene i Linux ved hjelp av forskjellige teknikker. Denne opplæringen er optimalisert for både nye og erfarne brukere, og går rett til det praktiske punktet og forklarer alle aspekter. Jeg oppfordrer deg til å praktisere alle eksempler gitt for å innlemme denne kunnskapen. Bare vær forsiktig med innholdet du sletter.

Denne artikkelen inkluderer skjermbilder av hvert trinn, noe som gjør det enkelt for alle Linux -brukerne å bruke dem.

Finne og slette filer i Linux

Denne delen forklarer de forskjellige teknikkene for å finne filene og slette dem mens du er på farten med en enkelt kommando eller med kommando -kombinasjon.

For å begynne, la oss se hva som er i hjemmekatalogen ved å bruke ls (Liste) Kommando.

ls

Som du ser i forrige figur, er det flere filer og kataloger. Blant dem kan vi se 1.tekst, 2.tekst og 3.tekst.

Vi kan bruke Find -kommandoen etterfulgt av filtypen, filnavnet og -slett alternativ.

Men i det følgende eksempel vil vi ikke fjerne en spesifikk fil, men alle filene med ".txt ”-forlengelse.

finne . -type f -navn "*.txt "-Delete

Hvor:

  • finne: Find -kommandoen brukes tydeligvis til å søke i filene.
  • . (Punktum): DOT etter Find -kommandoen spesifiserer at operasjonen må gjøres i den gjeldende katalogen. Vår sak er i hjemmekatalogen, derfor er denne prikken lik /Hjem/bruker.
  • -Type F: Dette alternativet spesifiserer hvilke filer vi ønsker å finne. I tilfelle du vil søke i katalogene, må du erstatte F med en D.
  • -Navn: Dette er alternativet for å spesifisere fil-/katalogmålet. Dette alternativet må skrives før filen/katalognavnet for å definere det.
  • “*.tekst": I dette tilfellet søker vi alle “.txt ”-filer som vi spesifiserer ved å skrive“*.tekst".
  • -Slett: Dette alternativet instruerer Find -kommandoen til å slette Found Files.

Som du kan se i forrige skjermbilde, etter å ha utført ls Kommando igjen, TXT -filene dukker ikke opp. De ble fjernet med den tidligere utførte kommandoen.

Selvfølgelig kan du finne og slette de spesifikke filene som vist i følgende figur hvor File3 blir funnet og fjernet.

finne . -type f -navn file3 -delete

Som forklart i listen over forrige kommandoer og opsjoner, hvis du vil fjerne en katalog i stedet for en fil, må du erstatte f med en d etter -type Alternativ som vist i følgende bilde:

finne . -type d -navn Dir1 -delete

La oss anta at du vil slette mange filer hvis første del av navnene deres er de samme. I det følgende skjermbildet kan du se fil1, File2 og File3.

Hvis du vil fjerne alle “Filex” -filene, trenger du bare å erstatte den delen av filnavnene uten tilfeldigheter med jokertegnet (*) som vist i følgende eksempel:

finne . -type f -name "fil*" -delete

Alle tidligere eksempler forklarte hvordan du sletter filene ved å bruke -slett alternativ. Denne delen forklarer hvordan du får samme resultat ved å bruke -Exec kommando.

Den første delen av følgende kommando ble allerede forklart tidligere. Den innarbeidede -exec -kommandoen brukes til å anvende en handling basert på resultatet av forrige kommando.

finne . -Navn "noe.log "-exec rm -rf \;

Hvor:

  • -exec: Instruerer om å utføre en bakre kommando etter den første kommandoen (finn) utførelsen.
  • rm -rf: Denne kommandoen brukes til å tvinge fjerning av filer og kataloger som samsvarer med de gitte navnene.
  • “”: Dette er finne Kommando -plassholder, som betyr at den tar filen eller katalognavn gitt til Find -kommandoen for å kjøre den gitte kommandoen (etter -Exec) på dem. I forrige eksempel, rm -rf brukes på plassholderen som representerer “Logg
  • “\;”: Baksiden og semikolon stenger eller avslutter -Exec

La oss nå se et nytt scenario ved hjelp av LS -kommandoen igjen. Som du kan se, er det forskjellige ".txt ”-filer.

I dette tilfellet vil vi erstatte -slett alternativ med -exec rm igjen for å slette alle “.txt ”-filer som vi gjorde i det andre eksemplet på dette dokumentet, men bruker en annen teknikk.

Du kan se kommandoen i den tredje linjen i følgende figur. Den forrige LS -kommandoen viser de eksisterende filene før du utfører finne, Og den andre LS viser resultatet med alle “.txt ”-filer slettet.

finne . -type f -navn "*.txt "-exec rm -f \;

La oss nå lage et nytt scenario som du kan se i følgende eksempel. Dette scenariet inkluderer flere ".txt ”og“.C -filer ”.

La oss anta at du vil fjerne begge deler .tekst og .c filer på en gang ved å bruke alternativet -Delete i stedet for -exec -alternativet. Som du kan se i følgende bilde, er navnefiler mellom \ ( og \). Før det andre filnavnet har vi -o alternativet etterfulgt av -Navn og det andre filnavnet (eller tilstanden i dette tilfellet, siden vi sletter alle “.txt ”-filer). Du kan legge til -o -navn mange ganger som du trenger, men husk at den første -Navn er ikke gitt av -o alternativ.

finne . \( -Navn "*.c "-o -navn"*.txt "\) -delete

Som du ser, begge deler .tekst og .c Filer ble fjernet med hell.

La oss nå kombinere Find -kommandoen med Xargs -kommandoen (forklart på slutten av denne opplæringen).

I det følgende eksemplet sletter vi alle “.txt ”-filer ved hjelp av XArgs, hvor -Jeg er plassholderen og mellom % vi utfører kommandoen.

Som du kan se, etter den andre LS -utførelsen, alle .c og .tekst Filer ble fjernet.

Finn *.txt -type f | xargs -i % rm " %"

Syntaksen for å slette mange filer er enklere med xargs. I følgende kommando, begge .c og .tekst Filer fjernes.

Finn *.tekst *.c -type f | xargs -i % rm " %"

Til slutt, la oss anta at du vil fjerne filene etter dato og ikke ved navn eller utvidelse. I dette tilfellet kan Find -kommandoen identifisere mtime (opprettelses- eller modifiseringsfildatoer) for filene og katalogene.

I det følgende bildet kan du se Dir2 Katalog som inneholder 4 filer: fil1, File2, File3 og File4. Alle filer i Dir2 ble opprettet i løpet av det siste døgnet.

Å identifisere filene er mulig ved å bruke -mime Alternativ etterfulgt av filens tidsintervall. I dette tilfellet -1 Alternativet indikerer 1 dag, 24 timer. De -1 betyr filene som er opprettet eller endret den siste dagen, mens +1 betyr filene som er opprettet eller endret for mer enn for en dag siden.

I følgende eksempel bruker vi Find -kommandoen med alternativet -Mtime for å fjerne filene som er opprettet eller endret den siste dagen.

Finn Dir2 -Type F -Mtime -1 -Delete

Xargs vs -exec

De xargs Kommandoen implementeres nesten alltid med rør (men ikke nødvendigvis må) for å bruke den første kommandoen som et argument. I motsetning til røret tillater det bruk av den første kommandoen som et argument og ikke bare som en tidligere output eller forgjenger -kommando.

Følgende eksempel i denne delen viser filene og katalogene ved å bruke ls (Liste) kommando og flytter de listede filene til en annen katalog med mv og xargs kommandoer. Dette er ikke den riktige metoden for å flytte filene, men det er nyttig som et eksempel å vise hvordan xargs Kommando fungerer.

Først må du se på meg Linuxhintdir katalog. Som du ser har vi 3 filer: fil1, File2 og File3.

LS DIR1 DIR2

La oss nå flytte alle filene innen dir1 til Dir2 bruker mv kommando.

ls ~/dir1/* | xargs mv -t ~/dir2

Som du ser ble LS ~/Dir1/* resultatet gått forbi xargs etter mv kommando.

De -Exec Kommandoen ligner på xargs. Den kan utføre kommandoer basert på utdataene fra den første kommandoen. I motsetning til xargs, -Exec Utfører kommandoen hver gang en fil samsvarer med tilstanden. Hvis vi bruker -exec -kommandoen for å fjerne filene, vil den fjerne filen etter fil. Mens Xargs utfører kommandoen med en gang for alle matchede filer. Dette gjør xargs litt raskere enn -exec. Derfor, hvis du har å gjøre med mange filer, ville Xargs være praktisk over -Exec.

Konklusjon

Linux har mange metoder for å oppnå den samme oppgaven. Å finne og fjerne filene med en enkelt kommando er en kunnskap om at enhver Linux -bruker skal ha uavhengig av hans erfaring. Denne opplæringen fokuserer på å finne og slette filene, men Xargs og -Exec kan brukes med mange Linux -kommandoer. Det er viktig å nevne at noen funksjoner bare er tilgjengelige i finne versjon. De fleste tipsene som er forklart er nyttige for nesten alle Linux -distribusjoner.

Takk for at du leser denne opplæringen som forklarer hvordan du finner og sletter filene i Linux. Fortsett å følge oss for mer profesjonelle tips.