28Jun

Fájl másolása több könyvtárba egy parancs segítségével Linux alatt

Egy fájl másolása a Linux parancssorral egyszerű.Mi a teendő azonban, ha ugyanazt a fájlt több különböző helyre kívánja másolni? Ez könnyű is, és megmutatjuk neked, hogyan kell ezt végrehajtani egy parancs segítségével.

Általában egy fájl másolásához használja a cp parancsot, amely a forrásfájlhoz és a célkönyvtárhoz kapcsolódik:

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

Ahhoz, hogy más könyvtárba másolhassuk, sok ember csak elindítaná a parancsottöbbször is, különböző célállomásokkal:

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

Ugyanazt a feladatot ugyanazzal a feladattal is végrehajthatjuk:

echo dir1 dir2 dir3 |xargs -n 1 cp file1

Így működik ez a parancs. Az echo parancs általában a képernyőre ír. Ebben az esetben azonban az echo parancs kimenetét tápláljuk az xargs parancs bemenetként. Ehhez a csőszimbólumot( |) használjuk, amely a parancs kimenetét bemenetként továbbítja. Az xargs parancs háromszor futtatja a cp parancsot, minden alkalommal, amikor hozzáfűzi a következő könyvtárútvonalat, amelyet hozzáfűznek az echo parancsból a cp parancs végére. Három argumentum érkezik az xargs-hoz, de az xargs parancs -n 1 opciója arra utasítja, hogy csak egyszer töltsön be egy ilyen argumentumot a cp parancshoz minden alkalommal, amikor fut.

Tehát, hogy a korábbi példánkkal ragaszkodjunk a fenti három különálló cp parancshoz, egy ilyen parancsba lehet egyesíteni:

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

Ne feledje, hogy ha a másolt fájl létezik a megadott célkönyvtárak bármelyikében, az adott célállomásban lévő fájl automatikusan kicseréli. Nem fogja megkérdezni, hogy kicserélné-e a fájlt.(Normál esetben, ha a cp parancsot egy fájl átmásolására egyetlen helyre használja, hozzáadhatja a -i opciót, és megkérdezi, hogy kicserélne-e egy meglévő fájlt. Az -i opció azonban interaktív opció( ez okozza acp paranccsal felkérheti a felhasználó bevitelét), és nem használhat interaktív opciót a cp paranccsal az xargs használatával.)

Egy másik dolog, amit fontolóra kell venni, hogy ha nagyon nagy fájlt másolsz, akkorszeretné hozzáadni a no-clobber( -n) opciót a cp parancshoz a fenti egyetlen parancsban. Ez az opció automatikusan megakadályozza, hogy egy fájl felülíródjon egy rendeltetési helyre, ha az már létezik. Ha egy nagyon nagy fájlt másol egy hálózaton, lassú lehet, és elkerülheti a fájl másolásához és kicseréléséhez szükséges erőforrások használatát. A következő parancs hozzáadja a -n opciót, és nem másolja a fájlt az argumentumokban felsorolt ​​rendeltetési helyre, ha a fájl már létezik az adott célállomáson.

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

Írja be az ember echo, man xargs vagy man cp parancsot a parancssorban a Linuxban, ha többet szeretne tudni ezekről a parancsokról.