BASH programavimas

Nukopijuokite failų sąrašą naudodami „Bash Script“

Nukopijuokite failų sąrašą naudodami „Bash Script“
„Bash“ („Bourne Again Shell“) yra apvalkalas, skirtas komandoms ir scenarijams vykdyti. Bashas buvo sukurta apvalkalo versija. „Bash Script“ yra failas, kuriame yra parašytos kelios apvalkalo komandos tam tikrai užduočiai atlikti. Šiame straipsnyje pamatysime, kaip galime nukopijuoti kelis failus naudodami „bash“ scenarijų. Šiam straipsniui naudoju „Ubuntu 20“.04 parodyti pavyzdį.

Pastaba: - $ USER atspausdins dabartinių prisijungimo vartotojų vardus.

Jei smalsu, kokia „bash shell“ versija yra įdiegta sistemoje, galime ją patikrinti naudodami šią komandą.

$ bash - versija

„Bash“ versijos išvestis.

„Bash“ scenarijaus kūrimas ir vykdymas

Pradėkime nuo paprasto failo sukūrimo naudodami bet kurį pasirinktą redaktorių. Man patogiau naudotis „vi“ redaktoriumi. Kad failas būtų vykdomas, turime pridėti „shebang“ (!#) ir „bash“ vertėjo vieta scenarijaus pradžioje. Aš sukūriau tekstą.txt failą ir pridėkite jį prie mano namų katalogo „bash_demo“ direktorijos, kuriame yra šiek tiek teksto, skirto demonstraciniams tikslams.

$ touch bash_demo.sh
$ vi bash_demo.sh

Sukūrę failą, į teksto rengyklę įtraukite šias eilutes, jei norite demonstracinio pavyzdžio; jei to nepadarėte, redaktorius sukurs naują failą, kurį parašys ir uždarys.

#!/ bin / bash
CP tekstas.txt / tmp /
aidas „Failas nukopijuotas.“

Mes galime įvykdyti scenarijų naudodami ./ prieš scenarijaus failą, kuris nustato dabartinį direktorijos failą.

$ ./ bash_demo.sh

Kai vykdysime scenarijų, ši klaida bus išmesta į mūsų terminalą.

Pradinis „bash“ failo vykdymas.

Kai pagal numatytuosius nustatymus kuriame failą, vartotojas neturi failo vykdymo leidimo. Norint suteikti vartotojui vykdymo leidimą, reikia vykdyti šią komandą.

$ chmod + x bash_demo.sh

Rezultatas suteiktas leidus.

Nukopijuokite tik failus iš konkretaus katalogo

Norėdami gauti visus failus ir aplankus iš konkretaus kelio, scenarijuje naudosime ciklą, tada filtruosime vienintelį failą naudodami if sąlygą. Toliau pateiktame pavyzdyje vykdome komandą cp tik tada, kai iteratorius buvo failas, kuris yra nustatytas -f vėliava.

#!/ bin / bash
dpath = / var / log / nginx / *
už FILE $ dpath
padaryti
jei [[-f $ FILE]]
tada
cp $ FILE / home / $ USER /
Kitas
aidas „Duotame kelyje nėra failų.“
fi
padaryta

Nukopijuokite visus konkrečių plėtinių failus

Šiame pavyzdyje mes nukopijuosime visus failus su .žurnalo pratęsimas. Turime pridėti *.prisijungti prie kelio, kad pakartotumėte vienintelį failą naudodami .žurnalo pratęsimas tik kilpai.

#!/ bin / bash
skirtas FILE aplanke / var / log / nginx / *.žurnalas
padaryti
cp $ FILE / home / $ USER /
padaryta

Nukopijuokite visus failus, įskaitant katalogą

Šiame pavyzdyje rekursyviai nukopijuosime visus failus, įskaitant katalogus. Tam mes tiesiog turime pridėti komandą -R cp, kur -R nustato rekursyvų katalogo gavimą.

#!/ bin / bash
skirtas FILE aplanke / var / log / *
padaryti
cp -R $ FILE / home / $ USER /
padaryta

Nukopijuokite failus iš vartotojo nurodyto kelio

Šiame pavyzdyje nukopijuosime failus iš vartotojo nurodyto direktoriaus. Norėdami tai padaryti, naudosime komandą „read“, kad paprašytume kelio iš vartotojo, tada patikrinsime, ar vartotojas pateikia kelią į „dir“, ar ne, o tai padaro -d vėliava sąlygoje. Patikrinę „dir“, mes naudosime „for“ kilpą, norėdami pakartoti visus failus ir nukreipti nurodytame kelyje, tada vėl filtruosime vienintelius failus naudodami sąlygą „if“. Jei sąlyga sutampa, bus vykdoma ši komanda.

#!/ bin / bash
aidas „Prašau pateikti kelią į rež.“
skaityti kelią
jei [[-d $ kelias]]
tada
skirtas FILE, $ path / *
padaryti
jei [[-f $ FILE]]
tada
cp $ FILE / home / $ USER /
Kitas
echo „Duotame kelyje nėra failų.“
fi
padaryta
Kitas
aidas „Reikalingas kelias į dir“
fi

Savo namų vadove turiu šiuos failus ir rež.

Išvestis pateikiant failo kelią.

Išvestis pateikiant tiesioginės vietos kelią.

Vykdydami scenarijaus failą, mes galime patikrinti išvestį iš anksto nustatytame scenarijaus dir. Mano atveju aš nukopijavau failą į savo namų katalogą, o rezultatas yra toks.

Išvada

Šiame straipsnyje mes sužinome, kaip nukopijuoti failus naudojant „bash“ scenarijus. Mes galime naudoti daugybę kitų operacijų, tokių kaip ciklas, jei dar kitaip. „Bash“ scenarijai yra efektyvesni dirbant su keliomis komandomis, norint atlikti konkrečias užduotis. Tikiuosi, kad jums patinka šis straipsnis apie failų kopijavimą naudojant „bash“ scenarijų.

Kaip sukurti žaidimą „Linux“
Prieš dešimtmetį nedaugelis „Linux“ vartotojų numatė, kad jų mėgstama operacinė sistema vieną dieną bus populiari komercinių vaizdo žaidimų žaidimų pl...
Atvirojo kodo komercinių žaidimų variklių uostai
Nemokami atvirojo kodo ir įvairių platformų žaidimų varikliai gali būti naudojami žaidžiant senus ir kai kuriuos gana naujus žaidimų pavadinimus. Šiam...
Geriausi „Linux“ komandinės eilutės žaidimai
Komandų eilutė yra ne tik jūsų didžiausias sąjungininkas naudojant „Linux“, bet ir pramogų šaltinis, nes ją galite naudoti norėdami žaisti daug įdomių...