Homepage » hogyan kell » Fájl másolása több könyvtárba egy paranccsal Linux alatt

    Fájl másolása több könyvtárba egy paranccsal Linux alatt

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

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

    cp ~ / Dokumentumok / FileToBeCopied.txt ~ / TextFiles /

    Ha további két könyvtárba szeretné másolni, sokan még egyszer kétszer futtatják a parancsot, különböző célállomásokkal:

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

    Ugyanakkor ugyanezt a feladatot egy parancs segítségével tehetjük:

    echo dir1 dir2 dir3 xargs -n 1 cp fájl1

    Ez a parancs hogyan működik. A visszhang parancs általában a képernyőre ír. Ebben az esetben azonban a program kimenetét kívánjuk táplálni visszhang parancsot xargs parancs. Ehhez a cső szimbólumot használjuk ( | ), amely egy parancs egyik kimenetét egy másik bemenetként adja át. A xargs parancs fut a cp parancsot háromszor, minden alkalommal, amikor hozzáadja a következő könyvtárútvonalat, amelyre az visszhang parancsot a cp parancs. Három érv kerül átadásra xargs , de a -n 1 opció a xargs A parancs azt mondja, hogy csak egy ilyen argumentumot csatol egy időben a cp parancs minden egyes futtatásakor.

    Tehát, a korábbi példánkhoz ragaszkodva a három külön cp a fenti parancsok ilyenkor egy parancsként kombinálhatók:

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

    Ne feledje, hogy ha a másolandó fájl létezik a megadott célkönyvtárak bármelyikében, akkor az adott célállomáson lévő fájl automatikusan kicserélésre kerül. Nem fogja megkérdezni, hogy ki szeretné-e cserélni a fájlt. (Általában, amikor a cp parancsot, hogy egy fájlt egyetlen helyre másoljon, hozzáadhatja a -én lehetőség arra, hogy megkérdezze, hogy ki kíván-e cserélni egy meglévő fájlt. Azonban a -én az opció egy interaktív lehetőség (ez a cp parancsot kérni a felhasználótól), és nem használhat interaktív opciót a cp parancs használatakor xargs .)

    Egy másik megfontolandó dolog, hogy ha egy nagyon nagy fájlt másol, akkor érdemes felvenni a nem-clobber-t ( -n ) opció a cp parancsot a fenti parancsban. Ez az opció automatikusan megakadályozza, hogy egy fájl felülírja a rendeltetési helyet, ha már létezik ott. Ha nagyon nagy fájlt másol át a hálózaton, lehet, hogy lassú, és esetleg elkerülheti a fájl másolásához és cseréjéhez szükséges erőforrásokat. A következő parancs hozzáadja a -n opció, és nem másolja a fájlt az argumentumokban felsorolt ​​célállomásokra az echo utasításhoz, 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

    A parancsok sorában írja be a man echo, man xargs vagy man cp parancsokat a további parancsokról..