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.
Leave a Reply