Articles

Hur man kopierar filer och kataloger i Linux

kopiera filer och kataloger är en av de vanligaste uppgifterna du ska utföra när du arbetar på kommandoraden. Det finns flera kommandon för att kopiera filer i Linux, med cp och rsync är de mest använda verktygen.

det är vanligt att använda kommandotcp för att kopiera filer ochrsync för att kopiera kataloger.

för att kunna kopiera filer och kataloger måste du ha minst läsbehörigheter i källfilen och skrivbehörighet i destinationskatalogen.

kopiera filer med cp-kommandot #

på Linux-och Unix-operativsystem används kommandot cp för att kopiera filer och kataloger.

det enklaste användningsfallet är att kopiera en fil i den aktuella arbetskatalogen. Om du till exempel vill kopiera en fil med namnet file.txt till en fil med namnet file_backup.txt I den aktuella katalogen kör du följande kommando:

cp file.txt file_backup.txt

om målfilen finns kommer den att skrivas över. För att få en bekräftelseprompt innan du skriver över filerna, använd alternativet -i.

cp -i file.txt file_backup.txt

som standard, när du använder kommandotcp för att kopiera en fil, kommer den nya filen att ägas av användaren som utför kommandot. Använd alternativet -p för att bevara filläge, ägande och tidsstämplar:

cp -p file.txt file_backup.txt

ett annat alternativ som kan vara användbart är -v. När du använder det här alternativet skriver kommandot ut vad som görs:

cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'

kopiera en fil till en katalog #

om du vill kopiera en fil till en katalog anger du den absoluta eller relativa sökvägen till katalogen. När målkatalogen utelämnas kopieras filen till den aktuella katalogen.

i följande exempel kopierar vi filen file.txt till katalogen /backup :

cp file.txt /backup

När du bara anger katalognamnet som destination kommer den kopierade filen att ha samma namn som originalfilen.

om du vill kopiera filen under ett annat namn måste du ange önskat filnamn:

cp file.txt /backup/new_file.txt

kommandot ovan kopierar filen till den angivna katalogen som new_file.txt.

kopiera flera filer #

om du vill kopiera flera filer och kataloger samtidigt anger du namnen på källfiler och kataloger som följts med målkatalogen som det sista argumentet:

cp file.txt dir file1.txt file2.txt dir1

När du kopierar flera filer måste destinationen vara en katalog.

kommandotcp låter dig också använda mönstermatchning. Till exempel, för att kopiera alla .png filer från den aktuella katalogen till /backup katalog, skulle du använda:

cp *.png /backup

kopiera kataloger med cp-kommandot #

om du vill kopiera en katalog, inklusive alla dess filer och underkataloger, använder du -R eller -r alternativ. I följande exempel kopierar vi katalogen Pictures till Pictures_backup:

cp -R Pictures Pictures_backup

kommandot ovan skapar destinationskatalogen och kopierar rekursivt alla filer och underkataloger från källan till destinationskatalogen.

om målkatalogen redan finns kopieras själva källkatalogen och dess innehåll till målkatalogen. Om du bara vill kopiera filerna och underkatalogerna men inte målkatalogen använder du alternativet -T :

cp -RT Pictures Pictures_backup

alternativen som används vid kopiering av filer kan också användas vid kopiering av kataloger. Huvudskillnaden är att när du kopierar kataloger måste du använda alternativet -R.

kopiera filer och kataloger med rsync-kommandot #

rsync är ett snabbt och mångsidigt kommandoradsverktyg som synkroniserar filer och kataloger mellan två platser. Den kan användas för att kopiera filer till lokala och avlägsna platser.

rsync innehåller många alternativ som styr alla aspekter av dess beteende

det mest användbara alternativet är-a som rekursivt kopierar kataloger, överför special-och blockenheter och bevarar symboliska länkar, modifieringstider, grupp, ägande och behörigheter.

om du vill kopiera en enda fil från en till en annan plats kör du följande kommando:

rsync -a file.txt file_backup.txt

om målfilen finns kommerrsync att skriva över den.

samma kommando kan användas för att kopiera en katalog:

rsync -a /var/www/public_html/ /var/www/public_html_backup/

rsync hot källkatalogerna som slutar med ett efterföljande snedstreck / annorlunda. Om du lägger till ett snedstreck i källkatalogen kopierar kommandot endast källkatalogens innehåll till målkatalogen. När det bakre snedstrecket utelämnas kopierar rsync källkatalogen i destinationskatalogen. Det säkraste alternativet är alltid att inkludera det bakre snedstrecket / på både destination och källa.

för att lära dig mer om rsync kontrollera följande artiklar:

  • hur man använder Rsync för lokal och Fjärrdataöverföring och synkronisering
  • hur man utesluter filer och kataloger med Rsync

slutsats #

Vi har visat dig hur du kopierar filer och kataloger i Linux och Unix-baserade system, med hjälp av cp och rsync verktyg.