Märkus: - $ USER prindib praeguste sisselogimis kasutajate kasutajanimed.
Kui soovite teada, milline bashi kesta versioon on süsteemi installitud, saame seda kontrollida järgmise käsu abil.
$ bash - versioonBashi versiooni väljund.
Bashi skripti loomine ja käivitamine
Alustame lihtsa faili loomisega mis tahes valitud redaktori abil. Minu jaoks on vi-redaktor mugavam. Faili käivitatavaks muutmiseks peame lisama shebang (!#) ja bashi tõlgi asukoht skripti alguses. Olen loonud teksti.txt-fail ja lisage see minu kodukataloogi bash_demo dir, mis sisaldab demo eesmärgil mõnda teksti.
$ touch bash_demo.sh$ vi bash_demo.sh
Pärast faili loomist lisage demo näidiseks järgmised tekstiredaktori read: kui te pole seda teinud, loob redaktor kirjutamiseks uue faili ja lõpetab selle.
#!/ bin / bashcp tekst.txt / tmp /
kaja “Fail on kopeeritud.”
Saame skripti käivitada ./ enne skriptifaili, mis määrab praeguse dir-faili.
$ ./ bash_demo.shSkripti käivitamisel visatakse meie terminali järgmine tõrge.
Bashi faili esmane käivitamine.
Kui loome vaikimisi faili, pole kasutajal faili täitmisluba. Kasutajale täitmisloa andmiseks tuleb täita järgmine käsk.
$ chmod + x bash_demo.shVäljund pärast loa andmist.
Kopeerige ainult kindla kataloogi failid
Kõigi failide ja kataloogide kindlalt teelt toomiseks kasutame skripti tsüklit, seejärel filtreerime välja ainsa faili, kasutades tingimust. Allpool toodud näites täidame käsu cp ainult juhul, kui iteraator oli fail, mis on määratud -f lipp.
#!/ bin / bashdpath = / var / log / nginx / *
faili FILE jaoks failis $ dpath
tegema
kui [[-f $ FILE]]
siis
cp $ FILE / home / $ USER /
muud
kaja “Antud tees pole ühtegi faili.”
fi
tehtud
Kopeerige kõik konkreetsete laienditega failid
Selles näites kopeerime kõik failid failiga .logipikendus. Peame lisama *.logige teele nii, et kordate ainsat faili failiga .logilaiend ainult silmuse jaoks.
#!/ bin / bashfaili FILE jaoks kataloogis / var / log / nginx / *.logi
tegema
cp $ FILE / home / $ USER /
tehtud
Kopeerige kõik failid, ka kataloog
Selles näites kopeerime kõik failid, sealhulgas kataloogid, rekursiivselt. Selleks peame lihtsalt lisama käsu -R cp, kus -R määrab kataloogi rekursiivselt.
#!/ bin / bashfaili FILE jaoks kataloogis / var / log / *
tegema
cp -R $ FILE / kodu / $ USER /
tehtud
Kopeerige failid kasutaja määratud teelt
Selles näites kopeerime failid kasutaja määratud dir. Selleks küsime kasutajalt käsku read, et kontrollida, kas kasutaja annab tee dir-ile või mitte, mille teeb tingimus -d lipp. Pärast dir kinnitamist kasutame a for loopi kõigi failide ja dir korramiseks antud tees, seejärel filtreerime uuesti välja ainsad failid tingimuse if abil. Kui tingimus sobib, käivitatakse järgmine käsk cp.
#!/ bin / bashkaja “Palun sisestage tee rež.”
loetud tee
kui [[-d $ tee]]
siis
faili FILE jaoks asukohas $ path / *
tegema
kui [[-f $ FILE]]
siis
cp $ FILE / home / $ USER /
muud
kaja “Antud tees pole ühtegi faili.”
fi
tehtud
muud
kaja "Vajalik on tee suunas"
fi
Minu kodukataloogis on mul järgmised failid ja dir.
Väljund faili tee pakkumisel.
Väljund dir asukoha määramisel.
Pärast skriptifaili käivitamist saame kontrollida väljundit skripti eelmääratud dir-is. Minu puhul olen faili oma kodukataloogi kopeerinud ja tulemus on järgmine.
Järeldus
Sellest artiklist saame teada, kuidas faile kopeerida bashi skriptide abil. Saame kasutada paljusid muid toiminguid, nagu loop, if-else jne. Bashi skriptimine on efektiivsem, kui töötate konkreetsete ülesannete täitmiseks mitme käsuga. Loodan, et teile meeldib see artikkel failide kopeerimise kohta bashi skripti abil.