Mājas lapa » » Kā kopēt failu vairākās direktorijās ar vienu komandu Linux

    Kā kopēt failu vairākās direktorijās ar vienu komandu Linux

    Faila kopēšana ar Linux komandrindu ir vienkārša. Tomēr, kas notiks, ja vēlaties kopēt to pašu failu vairākās dažādās vietās? Arī tas ir viegli, un mēs jums parādīsim, kā to izdarīt ar vienu komandu.

    Parasti, lai kopētu vienu failu, lietotu cp komandu, saistot to ar avota failu un galamērķa direktoriju:

    cp ~ / Dokumenti / FileToBeCopied.txt ~ / TextFiles /

    Lai kopētu to vēl divos katalogos, daudzi cilvēki vienkārši palaist komandu vēl divas reizes, ar dažādiem galamērķiem:

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

    Tomēr mēs varam darīt to pašu uzdevumu ar vienu komandu:

    echo dir1 dir2 dir3 | xargs -n 1 cp fails1

    Lūk, kā šī komanda darbojas. The atbalss komandu parasti raksta uz ekrāna. Tomēr šajā gadījumā mēs vēlamies barot produkcijas izlaidi atbalss komandu kā ievadi xargs komandu. Lai to izdarītu, mēs izmantojam caurules simbolu ( | ), kas baro izvadi no vienas komandas kā ievadi citā. The xargs komanda darbosies cp komandu trīs reizes, katru reizi pievienojot nākamo direktoriju ceļu, kas tam pievienots atbalss komandu uz cp komandu. Ir nodoti trīs argumenti xargs , bet -n 1 opcija xargs komandai ir jāpievieno tikai viens no šiem argumentiem cp komandu katru reizi, kad tas darbojas.

    Tātad, lai saglabātu mūsu piemēru no agrāk, trīs atsevišķi cp iepriekš minētās komandas var apvienot šādā komandā:

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

    Ņemiet vērā, ka, ja kopējamais fails atrodas kādā no norādītajiem adresātu katalogiem, faila atrašanās vieta tiks automātiski nomainīta. Jums netiks jautāts, vai vēlaties nomainīt failu. (Parasti, kad lietojat cp komandu, lai kopētu failu vienā vietā, varat pievienot -i iespēja uzdot jautājumu, vai vēlaties nomainīt esošo failu. Tomēr -i opcija ir interaktīva iespēja (tā izraisa cp komandu, lai pieprasītu ievadi no lietotāja) un jūs nevarat izmantot interaktīvu opciju cp komandu, lietojot to kopā ar xargs .)

    Vēl viena lieta, kas jāapsver, ir tā, ka, ja kopējat ļoti lielu failu, iespējams, vēlēsities pievienot ne-clobber ( -n ) opcija cp komandu iepriekš minētajā komandā. Šī opcija automātiski liedz failam pārrakstīt galamērķī, ja tā jau pastāv. Ja kopējat ļoti lielu failu tīklā, tas var būt lēns, un, iespējams, vēlēsities izvairīties no nepieciešamajiem resursiem, lai kopētu un aizstātu failu. Nākamā komanda pievieno -n opcija, un kopēt failu nevienā no galamērķiem, kas argumentos ir norādīti atbalss paziņojumā, ja fails jau atrodas šajā galamērķī.

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

    Lai iegūtu plašāku informāciju par kādu no šīm komandām, Linux komandrindā ierakstiet man echo, man xargs vai man cp..