Hoe een bestand naar meerdere mappen te kopiëren met één opdracht in Linux

00_lead_image_copying_naar_drie_locaties_met_een_commando

Het kopiëren van een bestand met de Linux-opdrachtregel is eenvoudig. Maar wat als u hetzelfde bestand naar verschillende locaties wilt kopiëren? Dat is ook gemakkelijk en we laten u zien hoe u dat met één opdracht doet.

Normaal gesproken gebruikt u om één bestand te kopiëren de cp commando, met een link naar het bronbestand en de bestemmingsmap:

cp ~/Documents/FileToBeCopied.txt ~/TextFiles/

Om het naar nog twee mappen te kopiëren, zouden veel mensen de opdracht nog twee keer uitvoeren, met verschillende bestemmingen:

cp ~/Documents/FileToBeCopied.txt ~/Dropbox/
cp ~/Documents/FileToBeCopied.txt /media/lori/MYUSBDRIVE/

01_entering_cp_command_three_times

We kunnen echter dezelfde taak uitvoeren met één opdracht:

echo dir1 dir2 dir3 | xargs -n 1 cp file1

Hier is hoe deze opdracht werkt. De echo commando schrijft normaal naar het scherm. In dit geval willen we echter de uitvoer van de echo commando als invoer voor het xargs opdracht. Hiervoor gebruiken we het pijpsymbool ( | ) die de uitvoer van het ene commando als invoer naar het andere voert. De xargs commando zal het cp commando driemaal, elke keer dat het volgende directorypad eraan wordt toegevoegd vanuit het echo commando aan het einde van de cp opdracht. Er worden drie argumenten doorgegeven xargs , maar de -n 1 optie op de xargs commando vertelt het om slechts één van deze argumenten tegelijk toe te voegen aan de cp commando elke keer dat het wordt uitgevoerd.

Dus, om bij ons voorbeeld van eerder te blijven, scheiden de drie zich cp bovenstaande commando’s kunnen als volgt worden gecombineerd tot één commando:

echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp ~/Documents/FileToBeCopied.txt

02_using_single_command

Merk op dat als het bestand dat wordt gekopieerd in een van de gespecificeerde bestemmingsmappen voorkomt, het bestand in die bestemming automatisch zal worden vervangen. U wordt niet gevraagd of u het bestand wilt vervangen. (Normaal gesproken, wanneer u de cp commando om een ​​bestand naar een enkele locatie te kopiëren, kunt u de -i optie om te vragen of u een bestaand bestand wilt vervangen. echter, de -i optie is een interactieve optie (het veroorzaakt de cp commando om input van de gebruiker te vragen) en u kunt geen interactieve optie gebruiken met de cp commando bij gebruik in combinatie met xargs .)

Een ander ding om te overwegen, is dat als u een zeer groot bestand kopieert, u misschien de no-clobber ( -n ) optie naar de cp commando in het enkele commando hierboven. Deze optie voorkomt automatisch dat een bestand wordt overschreven op een bestemming als het daar al bestaat. Als u een zeer groot bestand via een netwerk kopieert, kan het traag zijn en wilt u wellicht voorkomen dat u de benodigde bronnen gebruikt om het bestand te kopiëren en te vervangen. De volgende opdracht voegt het -n optie, en zal het bestand niet kopiëren naar een bestemming die wordt vermeld in de argumenten van de echo-instructie, als het bestand al op die bestemming bestaat.

echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp -n ~/Documents/FileToBeCopied.txt

03_single_command_with_no_clobber

Typ man echo, man xargs of man cp op de opdrachtregel in Linux voor meer informatie over deze opdrachten.

Nieuwste artikelen

spot_img

Related Stories

Leave A Reply

Vul alstublieft uw commentaar in!
Vul hier uw naam in