Articles

Hoe bestanden en mappen te kopiëren in Linux

Het kopiëren van bestanden en mappen is een van de meest voorkomende taken die u zult uitvoeren wanneer u op de opdrachtregel werkt. Er zijn verschillende commando ‘ s voor het kopiëren van bestanden in Linux, waarbij cp en rsync de meest gebruikte tools zijn.

Het is gebruikelijk om het cp commando te gebruiken om bestanden te kopiëren en rsync om mappen te kopiëren.

om bestanden en mappen te kunnen kopiëren, moet u ten minste leesrechten hebben op het bronbestand en schrijfrechten op de doelmap.

bestanden kopiëren met het commando CP #

Op Linux en Unix besturingssystemen wordt het commando cpgebruikt voor het kopiëren van bestanden en mappen.

het meest eenvoudige gebruik is het kopiëren van een bestand in de huidige werkmap. Bijvoorbeeld, om een bestand met de naam file.txt te kopiëren naar een bestand met de naam file_backup.txt in de huidige map, voer je het volgende commando uit:

cp file.txt file_backup.txt

als het doelbestand bestaat, zal het worden overschreven. Om een bevestiging te krijgen voordat u de bestanden overschrijft, gebruikt u de optie -i.

cp -i file.txt file_backup.txt

Als u de opdracht cp gebruikt om een bestand te kopiëren, zal het nieuwe bestand eigendom zijn van de gebruiker die de opdracht uitvoert. Gebruik de optie -p om de bestandsmodus, eigendom en tijdstempels te behouden:

cp -p file.txt file_backup.txt

een andere optie die nuttig kan zijn is -v. Als u deze optie gebruikt, drukt het commando af wat er gedaan wordt:

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

Kopieer een bestand naar een map #

om een bestand naar een map te kopiëren, geeft u het absolute of relatieve pad naar de map op. Wanneer de doelmap wordt weggelaten, wordt het bestand gekopieerd naar de huidige map.

in het volgende voorbeeld kopiëren we het bestand file.txt naar de/backup map:

cp file.txt /backup

wanneer alleen de mapnaam als doel wordt opgegeven, zal het gekopieerde bestand dezelfde naam hebben als het oorspronkelijke bestand.

Als u het bestand onder een andere naam wilt kopiëren, moet u de gewenste bestandsnaam opgeven:

cp file.txt /backup/new_file.txt

het bovenstaande commando kopieert het bestand naar de opgegeven map als new_file.txt.

kopieer meerdere bestanden #

om meerdere bestanden en mappen tegelijk te kopiëren, specificeer de namen van bronbestanden en mappen gevolgd met de doelmap als laatste argument:

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

bij het kopiëren van meerdere bestanden moet het doel een map zijn.

met het cp Commando kunt u ook patroonfiltering gebruiken. Als u bijvoorbeeld alle .png bestanden van de huidige map wilt kopiëren naar de /backup map, gebruikt u:

cp *.png /backup

mappen kopiëren met CP Commando #

om een map te kopiëren, inclusief alle bestanden en submappen, gebruik de -R or -r optie. In het volgende voorbeeld kopiëren we de map Pictures naar Pictures_backup:

cp -R Pictures Pictures_backup

het bovenstaande commando zal de doelmap aanmaken en recursief alle bestanden en submappen van de bron naar de doelmap kopiëren.

als de doelmap al bestaat, worden de bronmap zelf en de inhoud ervan gekopieerd naar de doelmap. Om alleen de bestanden en submappen te kopiëren, maar niet de doelmap, gebruik je de -T optie:

cp -RT Pictures Pictures_backup

de opties die gebruikt worden bij het kopiëren van bestanden kunnen ook gebruikt worden bij het kopiëren van mappen. Het belangrijkste verschil is dat u bij het kopiëren van mappen de optie -R moet gebruiken.

bestanden en mappen kopiëren met het rsync Commando #

rsync is een snel en veelzijdig commandoregelprogramma dat bestanden en mappen synchroniseert tussen twee locaties. Het kan worden gebruikt om bestanden te kopiëren naar lokale en externe locaties.

rsync bevat vele opties die elk aspect van zijn gedrag controleren

de meest bruikbare optie is -a die recursief mappen kopiëren, speciale en blokapparaten overdragen en symbolische links, wijzigingstijden, groep, eigendom en machtigingen behouden.

om een enkel bestand van de ene naar de andere locatie te kopiëren, voer je het volgende commando uit:

rsync -a file.txt file_backup.txt

als het doelbestand bestaat, zal rsync het overschrijven.

hetzelfde commando kan gebruikt worden om een map te kopiëren:

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

rsync bedreigt de bronmappen die eindigen met een schuine streep / anders. Als u een schuine streep toevoegt aan de bronmap, kopieert het commando alleen de inhoud van de bronmap naar de doelmap. Wanneer de schuine streep wordt weggelaten, zal rsync de bronmap in de doelmap kopiëren. De veiligste optie is altijd de trailing slash / op zowel de bestemming als de bron op te nemen.

meer informatie over rsync controleer de volgende artikelen:

  • Hoe Rsync Gebruiken voor Lokale en Externe Data-Overdracht en Synchronisatie
  • het Uitsluiten van Bestanden en Mappen met Rsync

Conclusie #

We hebben laten zien hoe u bestanden en mappen in Linux-en Unix-gebaseerde systemen, met behulp van de cp en rsync hulpprogramma ‘ s.