BASHi programmeerimine

Kopeerige failide loend Bashi skripti abil

Kopeerige failide loend Bashi skripti abil
Bash (Bourne Again Shell) on selline shell, mis on mõeldud käskude ja skriptide täitmiseks. Bash oli kesta koore väljatöötatud versioon. Bashi skript on fail, kus konkreetse ülesande täitmiseks skriptitakse mitu shellikäsku. Selles artiklis näeme, kuidas saame bashi skripti abil mitu faili kopeerida. Selle artikli jaoks kasutan Ubuntu 20.04 näite demonstreerimiseks.

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 - versioon

Bashi 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 / bash
cp tekst.txt / tmp /
kaja “Fail on kopeeritud.”

Saame skripti käivitada ./ enne skriptifaili, mis määrab praeguse dir-faili.

$ ./ bash_demo.sh

Skripti 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.sh

Vä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 / bash
dpath = / 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 / bash
faili 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 / bash
faili 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 / bash
kaja “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.

Installige Linuxile uusim Dolphin Emulator for Gamecube & Wii
Dolphini emulaator võimaldab teil mängida valitud Gamecube & Wii mänge Linuxi personaalarvutites (PC). Vabalt saadaval oleva ja avatud lähtekoodiga m...
Kuidas kasutada GameConquerori petumootorit Linuxis
Artikkel sisaldab juhendit GameConquerori petumootori kasutamise kohta Linuxis. Paljud kasutajad, kes mängivad Windowsis mänge, kasutavad rakendust „C...
Parimad Linuxi mängukonsooli emulaatorid
Selles artiklis loetletakse Linuxi jaoks saadaval olev populaarne mängukonsooli emuleerimise tarkvara. Emuleerimine on tarkvara ühilduvuse kiht, mis j...