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

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

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

Videó: Fájl másolása több könyvtárba egy parancs segítségével Linux alatt
Videó: How to Disable Choose an operating system at start up on windows 10 & 11 - YouTube 2024, Április
Anonim
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, hogyan kell ezt végrehajtani egy parancs segítségével.
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, hogyan kell ezt végrehajtani egy parancs segítségével.

Általában egy fájl másolásához a

cp

parancs, a forrásfájlhoz és a célkönyvtárhoz való kapcsolódás:

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

Két másik könyvtárba másolásához sok ember csak két újabb parancsot futtatna, különböző célállomásokkal:

cp ~/Documents/FileToBeCopied.txt ~/Dropbox/

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

Ugyanazt a feladatot ugyanazon a paranccsal lehet végrehajtani:
Ugyanazt a feladatot ugyanazon a paranccsal lehet végrehajtani:

echo dir1 dir2 dir3 | xargs -n 1 cp file1

Itt a parancs működik. A

echo

parancs általában a képernyőre ír. Ebben az esetben azonban szeretnénk táplálni a

echo

parancs bemenetként a

xargs

parancs. Ehhez használjuk a csőszimbólumot (

|

), amely az egyik parancs kimenetét bemenetként továbbítja. A

xargs

parancs fogja futtatni a

cp

parancs háromszor, minden alkalommal, amikor hozzáfűzi a következő könyvtárútvonalat, amelyet a

echo

parancs a végén a

cp

parancs. Három érv adódik

xargs

de a

-n 1

lehetőség a

xargs

parancs azt mondja, hogy csak az egyik argumentumot illessze be egyszerre

cp

parancsot minden alkalommal, amikor fut.

Tehát ahhoz, hogy a korábbi példánkhoz illeszkedjünk, a három különálló

cp

A fenti parancsok egy ilyen parancsra oszthatók:

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, akkor az abban a 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 használja a
Ne feledje, hogy ha a másolt fájl létezik a megadott célkönyvtárak bármelyikében, akkor az abban a 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 használja a

cp

parancsot, hogy egy fájlt egyetlen helyre másoljon, hozzáadhatja a

-i

lehetőséget, hogy megkérdezze, ki szeretné-e cserélni egy meglévő fájlt. Azonban a

-i

opció egy interaktív lehetőség (ez okozza a

cp

parancsot kérni a felhasználótól), és nem használhat interaktív opciót a

cp

parancsot használva a

xargs

.)

Egy másik dolog, amit fontolóra kell venni, hogy ha egy nagyon nagy fájlt másolsz, érdemes felvenni a nem clobber (

-n

) opciót

cp

parancsot 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ásokat. 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

Ajánlott: