Opties van het cp-commando en alles overschrijven zonder vragen | yes en backslash

cp vraagt bij het kopiëren van meerdere bestanden voor elk bestand of het overschreven moet worden, en het werk stokt. Het commando cp is de afkorting van Copy en kopieert bestanden en mappen. Dit artikel behandelt het basisgebruik, de opties en twee manieren om alles zonder vraag te overschrijven.
Het cp-commando overschrijft een bestand met dezelfde naam op de bestemming zonder te vragen. Om dat te voorkomen is [alias cp='cp -i'] ingesteld, zodat er vóór het overschrijven om bevestiging wordt gevraagd.
✅ Basisgebruik
De basissyntaxis is als volgt.
cp -[opties] <bron: Bestand of map> <doel: pad of Bestand of map pad>Schrijf eerst wat je kopieert, daarna de bestemming of de nieuwe naam.

# bestand > bestand kopiëren
cp file1 file2
# bestand > in een map kopiëren
cp file1 dir1/
# 2 bestanden > in een map kopiëren
cp file1 file2 dir1/ testuser]# cp dir1/ dir2/
cp: -r not specified; omitting directory 'dir1/'
Een map kopiëren vereist de optie -r, -R of -a.
- -r/-R : een map en de inhoud recursief kopiëren
- -a : recursief kopiëren met behoud van kenmerken (inclusief -r)
✅ Twee manieren om met cp alles te overschrijven
Het cp-commando vraagt [overwrite] omdat voor cp de alias [cp -i] is ingesteld.
cp -a
cp: overwrite 'messages_ori'? y
~]# alias cp
alias cp='cp -i'Bij een of twee bestanden is dat prima, maar bij veel bestanden moet je voor elk bestand antwoorden.
In dat geval overschrijven de twee methoden hieronder zonder vraag.
yes | cp -ar /home/ ./De eerste is [yes |] ervoor zetten: dat beantwoordt elke vraag met y, zodat het kopiëren gewoon doorgaat. De tweede is een backslash [\] voor het commando zetten: dat slaat de alias over en voert het oorspronkelijke cp-commando uit.
\cp -ar /home/ ./✅ Opties van het cp-commando & simulator
| Optie | Uitleg | |
|---|---|---|
| -a | --archiveKopiëren met behoud van alle rechten, eigenaar, groep en tijdstempels van het origineel[behoudt rechten, eigenaar, groep, tijdstempels en meer] + [-d : de symbolische link zelf kopiëren] + [-R : mappen recursief kopiëren] | |
| -b | Bestaat het doelbestand al, maak er dan eerst een back-up van | |
| -d | Is de bron een symbolische link, kopieer dan de link zelf | |
| -f | Bestaat het doelbestand, verwijder het dan geforceerd en kopieer | |
| -i | --interactiveVraagt vóór het overschrijven om bevestigingalias cp='cp -i' | |
| -l(kleine letter) | Kopiëren als harde link | |
| -P | Kopieert de symbolische link zoals hij is, zonder hem te volgen | |
| -p | Behoudt eigenaar, groep, rechten en tijdstempels van het origineel | |
| -r, -R | Kopieert mappen recursief (inclusief submappen en bestanden)De optie -r is geen POSIX-standaard en kan problemen geven met symbolische links en apparaatbestanden. | |
| -s | Kopiëren als symbolische link (de bron moet een absoluut pad zijn) | |
| -u | Niet overschrijven als het doelbestand nieuwer of gelijk is | |
| -v | Toont de voortgang van het kopiëren (verbose)Toont een melding voor elke voltooide kopie | |
| -x | Kopieert niet als bron en doel op verschillende bestandssystemen staan. |
🔲 -a: bestandskenmerken behouden & submappen en bestanden kopiëren
Alleen de optie [-a] is genoeg om submappen te kopiëren met behoud van de kenmerken van de originele bestanden. Sommige scripts en automatiseringstools eisen [-r] echter expliciet, dus soms wordt [-r] of [-R] er ook bij gezet.
testuser]# cp -a dir1 dir2
testuser]# ll dir*
dir1:
total 0
-rw-r--r-- 1 root root 0 Jun 8 14:11 file1
-rw-r--r-- 1 root root 0 Jun 8 14:15 file2
dir2:
total 0
-rw-r--r-- 1 root root 0 Jun 8 14:11 file1
-rw-r--r-- 1 root root 0 Jun 8 14:15 file2
testuser]# [-d : de symbolische link zelf kopiëren]+[-R : mappen recursief kopiëren]+[--preserve=all]
| Wat --preserve=all omvat | Uitleg |
|---|---|
| mode | Bestandsrechten (rwx enz.) |
| ownership | Eigenaar (user) en groep (group) |
| timestamps | Tijdstempels zoals de laatste wijzigingstijd |
| links | Aantal harde links (gedeelde inode blijft behouden) |
| context | SELinux-beveiligingscontext |
| xattr | Uitgebreide kenmerken (extra metadata bij het bestand) |
| all | Afkorting die alle bovenstaande items omvat |
🔲 -u: alleen nieuwe en gewijzigde bestanden kopiëren
- Kopieert alleen als er op de bestemming geen bestand met dezelfde naam staat, of als de bron nieuwer is
- Vaak gebruikt voor back-ups en synchronisatie
testuser]# cp -u file1 file2
testuser]# ll file*
-rw-r--r-- 1 root root 0 Jun 8 14:11 file1
-rw-r--r-- 1 root root 0 Jun 8 14:30 file2
ℹ️ Affiliatemelding
De content van deze site bevat affiliatelinks. Koopt een bezoeker via een van deze links een product of dienst, dan ontvangt deze site een commissie van de verkoper. Het bedrag dat de koper betaalt (bij acties gaat het omlaag ↓) wordt daardoor niet hoger. De vermelde prijzen, kortingen en voorraad gelden op het moment van schrijven en kunnen afwijken; controleer ze daarom vóór je aankoop bij de verkoper. Producten worden gekozen en beoordeeld volgens onze eigen criteria, en commissies hebben geen invloed op de volgorde of de inhoud van de beoordelingen.