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 eenvoudig en we laten u zien hoe u dat met één opdracht doet.
Normaal gesproken, om één bestand te kopiëren, gebruikt u de opdrachtcp
, die linken naar het bronbestand en de bestemming map:
cp ~ / Documents / FileToBeCopied.txt ~ / TextFiles /
Om het naar nog twee mappen te kopiëren, zouden veel mensen de opdracht gewoon nog twee keer uitvoeren, met verschillende bestemmingen:
cp ~ / Documents /FileToBeCopied.txt ~ / Dropbox /
cp ~ / Documents / FileToBeCopied.txt / media / lori / MYUSBDRIVE /
We kunnen echter dezelfde taak uitvoeren met één opdracht:
echo dir1 dir2 dir3 | xargs -n 1 cp file1
Zo werkt deze opdracht. De opdrachtecho
schrijft normaal gesproken naar het scherm. In dit geval willen we de uitvoer van de opdrachtecho
echter invoeren als invoer voor de opdrachtxargs
. Om dit te doen, gebruiken we het pijpsymbool (|
) dat de uitvoer van de ene opdracht voedt als invoer naar een andere. Met de opdrachtxargs
wordt de opdrachtcp
driemaal uitgevoerd, waarbij telkens het volgende directorypad wordt toegevoegd aan de opdrachtecho
tot aan het einde van decp
commando. Er zijn drie argumenten die worden doorgegeven aanxargs
, maar de-n 1
optie op dexargs
opdracht vertelt het om slechts één van die argumenten tegelijk toe te voegen decp
-opdracht elke keer dat het wordt uitgevoerd.
Om dus bij ons voorbeeld van eerder te blijven, kunnen de drie afzonderlijkecp
-opdrachten hierboven worden gecombineerd in één opdracht als deze:
echo ~ / TextFiles / ~ / Dropbox / media / lori / MYUSBDRIVE | xargs -n 1 cp ~ / Documents / FileToBeCopied.txt
Merk op dat als het bestand dat wordt gekopieerd bestaat in een van de gespecificeerde doelmappen, het bestand in die bestemming automatisch zal worden vervangen. U wordt niet gevraagd of u het bestand wilt vervangen. (Als u de opdrachtcp
gebruikt om een bestand naar één locatie te kopiëren, kunt u de optie-i
toevoegen om te vragen of u een bestaand bestand wilt vervangen. de-i
optie is een interactieve optie (het zorgt ervoor dat decp
opdracht om invoer vraagt van de gebruiker) en u kunt geen interactieve optie gebruiken met decp
commando bij gebruik in combinatie metxargs
.)
Een ander ding om te overwegen, is dat als je een heel groot bestand kopieert, je misschien het no-clobber wilt toevoegen (- n
) optie in de opdrachtcp
in de bovenstaande enkele opdracht. Deze optie voorkomt automatisch dat een bestand wordt overschreven in een bestemming als het daar al bestaat. Als u een zeer groot bestand via een netwerk kopieert, is het mogelijk traag en wilt u mogelijk niet de bronnen gebruiken die nodig zijn om het bestand te kopiëren en te vervangen. Met de volgende opdracht wordt de optie-n
toegevoegd en wordt het bestand niet naar een bestemming in de argumenten naar de echo-instructie gekopieerd, als het bestand al in die bestemming bestaat.
echo ~ / TextFiles / ~ / Dropbox / media / lori / MYUSBDRIVE | xargs -n 1 cp -n ~ / Documents / FileToBeCopied.txt
Typ man echo, man xargs of man cp op de opdrachtregel in Linux voor meer informatie over een van deze opdrachten.
Hoe haal je het maximale uit je SkyBell HD
Als je allerlei verschillende mensen bij je hebt, is een video-deurbel zoals de SkyBell HD een investering die de moeite waard is, maar je mag niet gebruik het volledig. Zo kunt u het beste uit uw SkyBell HD-videodeurbel halen. De videokwaliteit wijzigen RELATED: De videokwaliteit van de SkyBell HD-deurbel wijzigen De SkyBell HD kan streamen en opnemen video tot 1080p in resolutie.
Windows en Linux met verschillende tijden repareren tijdens dubbel opstarten
Uw computer slaat de tijd op in een hardwareklok op het moederbord. De klok houdt de tijd bij, ook als de computer uit staat. Windows gaat er standaard van uit dat de tijd wordt opgeslagen in lokale tijd, terwijl Linux ervan uitgaat dat de tijd is opgeslagen in UTC-tijd en een offset toepast. Dit leidt ertoe dat een van uw besturingssystemen de verkeerde tijd in een dual-boot-situatie laat zien.