Linux cp-kommando: Mina mest använda flaggor och argument

Linux cp-kommando: Mina mest använda flaggor och argument
Index
  1. -r eller -R: Rekursiv kopiering
  2. -u: Kopiera endast när källan är nyare
  3. -i: Interaktivt läge
  4. -v: Verbos läge
  5. -p: Bevara attribut

Utforska kraften i cp-kommandot på Linux! Lär dig använda viktiga flaggor för rekursiv kopiering, uppdateringar, interaktion, verbositet och bevarande av attribut.

cp-kommandot på Linux har några coola alternativ som utökar dess användning. De flesta användare gör endast vanlig kopiering och bryr sig aldrig om att utforska flaggorna som följer med. Efter att ha provat några insåg jag att det finns vissa flaggor som jag fortsätter att använda för en bättre upplevelse.

-r eller -R: Rekursiv kopiering

Du kan använda cp-kommandot för att kopiera både filer och kataloger. Som standard fungerar det endast på filer. Om du försöker använda det med kataloger får du ett felmeddelande som hoppar över kopieringen av katalogen.

cp dirA/ dirB/

Här kommer flaggan -r in i bilden. Genom att använda -r-flaggan kan du också kopiera kataloger och filerna inuti dem.

cp -r dirA/ dirB/

Här kopierar vi hela "dirA/"-katalogen till en annan katalog som heter "dirB/." Du kommer att märka att "dirA/"-katalogen själv också kopierades. Om du inte vill ha det och bara vill kopiera innehållet inuti katalogen, behöver du lägga till en punkt (.) efter snedstrecket, så här:

cp -r dirA/. dirB/

Om du bara vill skapa en kopia i samma katalog kan du istället ange ett nytt namn som argument.

[enlazatom_show_links]
cp -r dirA/ dir-copy # kopiera katalogen och döpa om den

-u: Kopiera endast när källan är nyare

En av de mest underskattade flaggorna för cp-kommandot är -u. Detta alternativ säger till cp att endast kopiera en fil om källfilen är nyare än målet eller om målet ännu inte finns.

Tänk dig att du har en katalog full av projektfiler som du säkerhetskopierar till en annan mapp. Att köra en normal rekursiv kopiering varje gång kommer att skriva över alla filer, även de som inte har ändrats. Det är slöseri med I/O och, beroende på storleken på projektet, kan det sakta ner processen betydligt.

Med -u kan du köra samma kopieringskommando om och om igen, och endast de uppdaterade filerna kommer att överföras. Låt oss säga att du har en "reports/"-mapp som du synkar till "backup/":

cp -ru reports/ backup/

Som ses i skärmdumpen ovan gjorde jag ett litet experiment som du också kan följa. Den första körningen kommer att kopiera allt. Den andra körningen kommer endast att kopiera de filer du har rört eller skapat sedan den senaste säkerhetskopieringen. Om inget har ändrats kommer kommandot att avslutas nästan omedelbart.

-i: Interaktivt läge

Om du är glömsk som jag, har du förmodligen kört cp-kommandot utan att tänka, tryckt Enter och plötsligt insett att du just har skrivit över en fil du verkligen inte ville förlora. Som standard kommer cp inte att be om bekräftelse. Det kommer bara att tyst ersätta målfilen. Det är här flaggan -i kommer till nytta. Den säger till cp att fråga innan en fil skrivs över. Om en målfiler redan finns kommer cp att be dig med en enkel fråga som:

cp: skriva över 'file.txt'?

Vid detta tillfälle kan du skriva 'y' för att skriva över den eller 'n' för att hoppa över den. Här är ett exempel:

cp -i report1.txt reports/
# cp: skriva över 'reports/report1.txt'? n
cp -i report1.txt reports/
# cp: skriva över 'reports/report1.txt'? y

Om "reports/report1.txt" redan finns kommer du att bli tillfrågad innan den skrivs över. Utan -i skulle filen skrivas över utan varning. Detta är särskilt användbart när du kopierar till platser som "/etc/" eller "/var/", där en felaktig överskrivning kan orsaka betydande problem. Om du vill kopiera en mängd filer och bara några redan finns i målet, låter -i dig bestämma fall för fall.

-v: Verbos läge

-v-flagg är ganska vanlig för Linux-kommandon. Den aktiverar verbos läge, vilket är användbart för att se vad som händer i bakgrunden när du kör ett kommando. För cp-kommandot visar -v-flaggan exakt vad den kopierar. Med -v skrivs varje fil som kopieras ut till terminalen i formatet:

'source' -> 'destination'

Detta gör det kristallklart vad som händer bakom kulisserna. Låt oss se ett exempel:

cp -v report1.txt backup/

För flera filer kan du använda ett jokertecken:

cp -v *.txt backup/

Nu har du bekräftelse på att varje fil faktiskt gick dit du förväntade dig. När du kopierar filer i grupper ger den verbosa flaggan dig en löpande logg över framsteg. Det är också användbart för att fånga de små misstagen i fall av en misslyckad kopiering.

-p: Bevara attribut

Som standard fokuserar cp-kommandot på att hämta.

Innehållet i dina filer från punkt A till punkt B. Men ibland är metadata, saker som tidsstämplar, filmodi och ägarskap, lika viktiga som filen själv. Det är vad -p-flaggan handlar om: att bevara attribut.

När du lägger till -p, kommer cp att bevara dessa attribut. Utan -p får kopierade filer nya tidsstämplar och standardägarskap i destinationen. Med -p förblir de "kloner" av originalet både i innehåll och metadata. Låt oss se det i praktiken.

cp -p config.cfg backup/

I fallet med rekursiv kopiering:

cp -rp project/ backup/

Detta kommer att kopiera hela project/-mappen, och säkerställa att alla filer behåller sina ursprungliga attribut. Om du arkiverar filer vill du inte att de alla ska visa dagens datum. Att bevara de ursprungliga tidsstämplarna hjälper dig att veta när saker faktiskt förändrades.

Det finns många fler flaggor och argument för cp-kommandot. Du kan utforska dem i den officiella man-sidan. Att känna till dessa kommandoval gör Linux-filenavigering och hantering av filer från terminalen mycket enklare.

Nu när du har läst klart Linux cp-kommando: Mina mest använda flaggor och argument, inbjuder vi dig att utforska kategorin Linux ytterligare. Där hittar du fler intressanta artiklar som kommer att utöka dina kunskaper och hålla dig informerad. Sluta inte läsa och upptäcka mer!

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Go up