Kako kopirati datoteko v več imenikov z enim ukazom v Linuxu
Kopiranje datoteke z ukazno vrstico Linux je preprosto. Kaj pa, če želite kopirati isto datoteko na več različnih lokacij? Tudi to je enostavno in pokazali vam bomo, kako to storite z enim ukazom.
Običajno, če želite kopirati eno datoteko, bi jo uporabili cp
ukaz, povezava na izvorno datoteko in ciljni imenik:
cp ~ / Documents / FileToBeCopied.txt ~ / TextFiles /
Da bi ga kopirali v še dva imenika, bi veliko ljudi samo še enkrat pognalo ukaz z različnimi cilji:
cp ~ / Documents / FileToBeCopied.txt ~ / Dropbox /
cp ~ / Documents / FileToBeCopied.txt / mediji / lori / MYUSBDRIVE /
Vendar lahko isto nalogo opravimo z enim ukazom:
echo dir1 dir2 dir3 | xargs -n 1 cp datoteka1
Kako deluje ta ukaz. The odmev
ukaz običajno zapiše na zaslon. Vendar pa v tem primeru želimo nahraniti rezultate odmev
kot vhod v xargs
ukaz. To naredimo tako, da uporabimo simbol cevi ( |
), ki podaja izhod iz enega ukaza kot vhod v drugega. The xargs
ukaz bo zagnal cp
ukažete trikrat, vsakokrat ko dodajajo naslednjo pot do imenika iz nje odmev
ukaz na konec cp
ukaz. Obstajajo trije argumenti xargs
, toda -n 1
možnost na xargs
ukaz pove, da doda le enega od teh argumentov hkrati cp
ukaz ob vsakem zagonu.
Torej, da se držimo našega primera iz prejšnjih, tri ločimo cp
zgornji ukazi se lahko združijo v en ukaz:
echo ~ / TextFiles / ~ / Dropbox / mediji / lori / MYUSBDRIVE | xargs -n 1 cp ~ / Dokumenti / FileToBeCopied.txt
Upoštevajte, da če kopirana datoteka obstaja v katerem od navedenih ciljnih imenikov, bo datoteka v tem cilju samodejno zamenjana. Ne boste vprašani, ali želite datoteko zamenjati. (Običajno, ko uporabljate cp
Če želite kopirati datoteko na eno mesto, lahko dodate ukaz -jaz
možnost, da vprašate, če želite zamenjati obstoječo datoteko. Vendar pa -jaz
je interaktivna možnost (povzroča cp
ukaz za vnos od uporabnika) in interaktivne možnosti z cp
, ko ga uporabljate v povezavi z xargs
.)
Še ena stvar, ki jo je treba upoštevati, je, da če kopirate zelo veliko datoteko, boste morda želeli dodati ne-clobber -n
) možnost za cp
v ukazu zgoraj. Ta možnost samodejno prepreči prepis datoteke v namembnem kraju, če že obstaja. Če kopirate veliko datoteko prek omrežja, je morda počasna in morda se boste izogibali uporabi virov, ki so potrebni za kopiranje in zamenjavo datoteke. Naslednji ukaz doda -n
in ne bo kopiral datoteke na kateri koli cilj, naveden v argumentih, v izjavo echo, če datoteka že obstaja v tem cilju.
echo ~ / TextFiles / ~ / Dropbox / mediji / lori / MYUSBDRIVE | xargs -n 1 cp -n ~ / Documents / FileToBeCopied.txt
V ukazno vrstico Linux vnesite man echo, man xargs ali man cp za več informacij o teh ukazih.