Slik håndterer filer fra kommando Line


Dette er den tredje artikkelen i "Bryt GUI" -serien, og det handler om håndtering av filer og kataloger uten å måtte åpne filbehandleren.

En stor fordel med å bruke kommandolinje-grensesnitt (CLI) til å utføre slike oppgaver er at du omgå begrensningene i filbehandleren som følger med distro. CLI er raskere og mindre ressurskrevende, og som et resultat, mer effektiv. Læring CLI har sine egne fordeler: det også gjør at du kan kjøre din egen hodeløse servere

Jeg antar at du er kjent med det grunnleggende kommandolinjen, hvis ikke, så sjekk ut denne artikkelen ved Jack Wallen ". Hvordan du flytter filer med Linux kommandoer eller filtjenerne. " I denne artikkelen vil vi lære hvordan du gjør "nesten" alt med dine filer og katalog uten en filbehandler.

Uten videre, la oss komme i gang.

For å gjøre det enklere for brukerne å forstå, jeg presentere et problem. Jeg tar mye bilder og laste dem ned til datamaskinen min. Nå er alle disse bildene er stablet opp i 'Nedlastinger' katalog og jeg ønsker å organisere filene mine.

Hvordan lage nye kataloger med kommandolinje

Det er to måter å gjøre dette. Enten _cd_ til katalogen der du vil opprette en ny mappe eller bruke hele banen. La oss anta at jeg har bilder fra forrige LinuxCon og jeg ønsker å lagre alle disse bildene til en katalog som heter "Linux_Con" inne enda å-være-laget katalog "bilder", inne i en av mine partisjoner montert på '/media /4TB'.

Siden katalog 'bilder' eksisterer ikke ennå, vil vi bruke '-p alternativet med mkdir kommandoen:

 mkdir -p /media /4TB /images /linux_con < p> '-  p 
alternativet vil skape alle kataloger gitt i kommandoen i foreldre-barn orden. Hvis vi brukte mkdir kommandoen uten ' -p
' og siden 'bilder' katalogen ikke gå ut, vil det kaste en feil.

Den andre metoden er cd
til den overordnede katalogen, som i dette tilfellet er "4TB ':

 cd /media /4TB 

Deretter oppretter kataloger:

 mkdir -p images /linuxcon 

katalogen har blitt opprettet, og vi kan nå fylle det ved enten å kopiere eller flytte filer til den. Det er viktig å forstå forskjellen mellom de to: mens kopien, som underforstått av navnet, lager en kopi av filen på det nye stedet, den " flytte
'kommandoen sletter filen fra den opprinnelige plasseringen og steder . det i den nye

Kopiere filer:

 cp path_of_file /path_of_new_destination 

Hvis jeg kopierer bildets linux_con_2012.jpg "fra" Downloads "-mappen til den nyopprettede mappen her er kommandoen:

 cp /home/swapnil/Downloads/linux_con_2012.jpg /media /4TB /images /linuxcon /

Hva om det er mer enn ett bilde i ' Nedlastinger
'mappen? I så fall kan vi bruke et wildcard for å kopiere alt fra mappen til bildekatalogen:

 cp /home /Swapnil /Downloads /* /media /4TB /images /linuxcon 
Houston er det et problem

Det var andre filer og ikke bare bilder i nedlastingsmappen og jeg ønsket bare bilder som skal kopieres. I så fall vil vi spesifisere hvilke filtyper som skal kopieres. Bruke filen 'extension' med wildcard så kommandoen vil kopiere bare de filtyper. I dette tilfellet bildene er i JPG-format.

 cp /home/swapnil/Downloads/*.jpg /media /4TB /images /linuxcon 

Du kan bruke samme mønster for å kopiere andre filtyper . For eksempel, hvis du ønsker å kopiere bilder eller dokumenter eller musikk du kan bruke hensiktsmessige utvidelser som .jpg, .odt, .doc, .pdf eller .mp3.

Kopiere bare enkelte filer av samme filtype

Hva om jeg ikke ønsker å kopiere alle bildene fra nedlastingsmappen; og ønsker å kopiere bare de som jeg tok under konferansen? La oss € ™ s si at bildene ble navngitt av kameraet som IMG med tall, slik at de så noe sånt. IMG_2200123.jpg

Nå de første 325 bildene er fra Linux Con. La oss gjøre det litt komplisert og si si fra bilde nummer 50 til 400 er fra LinuxCon og disse er de bildene som jeg ønsker å kopiere. Bilder før og etter disse er fra en annen hendelse. Vår utfordring er å flytte bare disse bildene.

Så vi kommer til å flytte alle bildene fra IMG_220040.jpg
til IMG_220400.jpg.
Her er kommandoen:

 cp /home/swapnil/Downloads/DCIM/IMG_220{40..400}.jpg /media /4TB /images /linuxcon /

I dette tilfellet navnet utenfor braketten er vanlig og de som er inne er i endring. Du kan bruke samme mønster for å kopiere bilder på datamaskinen.

Hvis jeg ønsker å kopiere den neste batch bare bruke det samme mønsteret. La oss si at jeg ønsker å kopiere de neste 100 bildene til Chicago-mappen. Kommandoen vil være:

 cp /home/swapnil/Downloads/DCIM/IMG_220{401...500}.jpg /media /4 TB /images /chicago 
Flytt over cp, her kommer mv

Hvis du ikke vil ha to kopier av den samme filen, som det vil ta opp unødvendig plass, kan du bare slette de kopierte filer fra kilden stedet for å frigjøre plass. Alternativt, i stedet for å kopiere du kan flytte filer. Det blir viktig når du kjører ut av plass og 'kopiering' vil ikke fungere fordi det ikke er nok plass til å ha to kopier av den samme filen.

Du kan bruke kommandoene ovenfor for formålet, bare bytt 'cp "med" mv ". Her mv står for "flytte"

Så kommandoen vil være:.

 mv /home/swapnil/Downloads/DCIM/IMG_220{401...500}.jpg /media /4TB /bilder /chicago 
Hvordan endre navn på filer

Det er ganske lett å endre navn på filer ved hjelp av en filbehandler som Dolphin. Selv om Gnome standard filbehandler Nautilus (filer) kan ikke håndtere multiple fil døpe, slik at du står fast på grunn av den begrensningen. Det er der CLI kommer inn i bildet som det kan batch endre navn på filer på en Gnome system.

Problemet.

Hvorfor trenger jeg batch fil døpe? Jeg besøkte en konferanse og tok hundrevis av bilder. Nå to år senere, vil det være en umulig oppgave for meg å finne bildene fra Eben Upton keynote, som alle bildene er i standardnavneformatet som "IMG-20133.jpg". Hvis jeg omdøpt bildene fra ulike hendelser, ville det være svært enkelt å finne dem senere. Min sønn ble født i 2012, og hvis jeg ønsker å se video eller bilder av hans første latter jeg kan bare søke "først latter" på maskinen min, og bildet vil være der ... fordi jeg kalte dem på riktig måte. Ingen flere muss og mase med å prøve å finne mappen hvor jeg lagret bilder som året.

Det er veldig enkelt å endre navn på enkeltbilder, men hvis du har mer enn ett bilde, så er det bortkastet tid å endre navn på hundrevis av bildene en etter en.

For å endre navn på bilder ved hjelp av kommandolinjen, bruker vi " mmv
'kommando (det finnes andre kommandoer som renamer, etc).

Hvis MMV ikke er installert på PC-en, kan du installere det fra de offisielle repos. Når programmet er installert, cd inn i katalogen hvor filene er lagret. Det er en påminnelse om: Kommandoen vil endre navn på alle filene i gjeldende katalog så bruk den forsiktig

 mmv \\ * jpg \\ ny-name_ # 1.jpg 

Alle filene vil bli omdøpt til.. nytt navn

Hvis du ønsker å endre navn på ett bilde, så bare kjøre denne kommandoen:.

 mv /path_of_Image/old-image-name.jpg /path_of_Image /new-image-navn. jpg 
Hold to kataloger synkronisert

Du må alltid ha back-up eller kopier av filene dine på ulike fysiske lagringsenheter, slik at sjansene for å miste data er lave. Jeg har en mail home server og deretter en lokal backup-server, hvor stasjonene er varmt plugget og jeg kan hente og kjøre i tilfelle brann (ja, vil jeg lagre data før jeg lagre mine katter!). I tillegg til at jeg har en kopi av mine kritiske data på en ekstern server, og jeg synkronisere den med en tunnel. Og det er der 'rsync "verktøy spiller en avgjørende rolle.

Så hvordan skal jeg holde mine data synkroniseres på tvers av disse enhetene eller hvordan automat jeg back-up? Vel det er i fokus i den neste artikkelen. Fokus for dagens artikkel er å holde to kataloger synkronisert med hverandre.

Det er mange fordeler med rsync
løpet cp
eller mv
kommandoer . Og i noen tilfeller kan du bare bruke rsync
og ikke de to andre.

En av fordelene med å bruke rsync løpet cp er at hvis du sletter noen filer fra primærkilden, vil rsync slette disse filene fra sekundær kilde. I et nøtteskall holder det begge begge katalogene synkroniseres.

La oss si at vi ønsker å lage en kopi av /media /4TB /images /linuxcon
på en annen stasjon montert på /media /2TB /

 rsync -avz /media /4TB /images /linuxcon /media /2TB /

Som du kan se, er enkle mønsteret:

 rsync -avz /kilde /destinasjon 

Her en står for 'arkiv mode'. Denne modusen bevarer enheter, symbolske lenker, attributter, tillatelser, eierskap osv V står for ordrik og z komprimerer filene under overføringen. Flere alternativer kan brukes til ulike oppgaver.

Som standard vil ikke fjerne noen kataloger fra destinasjonen hvis du har slettet dem ved kilden. Du kan få det til å gjøre det ved å legge til "--delete alternativet. Så kommandoen vil bli:

 rsync -avz --delete /media /4TB /images /linuxcon /media /2TB /

Det er ganske mye grunnleggende bruk CLI å behandle filer og kataloger uten touch GUI baserte verktøy

Hold deg rsynced
med denne serien

Hvordan bruke Linux Command Line:.! Programvare Ledelse

Hvordan bruke Linux Command Line: Grunnleggende om CLI Anmeldelser