Napomena: - $ USER će ispisati trenutna korisnička imena korisnika za prijavu.
Ako vas zanima koja je inačica bash ljuske instalirana u sustav, možemo je provjeriti pomoću sljedeće naredbe.
$ bash --verzijaIzlaz Bash verzije.
Stvaranje i izvršavanje Bash skripte
Počnimo s izradom jednostavne datoteke pomoću bilo kojeg uređivača po vašem izboru. Za mene je vi editor ugodniji. Da bismo datoteku učinili izvršnom, moramo dodati shebang (!#) i bash mjesto tumača na početku skripte. Stvorio sam tekst.txt datoteku i dodajte je u direktorij bash_demo u mom kućnom direktoriju koji sadrži malo teksta u demo svrhe.
$ dodirni bash_demo.sh$ vi bash_demo.sh
Nakon stvaranja datoteke dodajte sljedeće retke u svoj uređivač teksta za ogledni prikaz; ako niste, urednik će stvoriti novu datoteku o pisanju i prestanku rada.
#!/ bin / bashcp tekst.txt / tmp /
echo „Datoteka kopirana."
Skriptu možemo izvršiti pomoću ./ prije datoteke skripte, koja određuje trenutnu dir datoteku.
$ ./ bash_demo.shKad izvršimo skriptu, u naš će se terminal pojaviti sljedeća pogreška.
Početno izvršavanje bash datoteke.
Kada prema zadanim postavkama izradimo datoteku, korisnik nema dozvolu za izvršavanje datoteke. Da bi se korisniku omogućilo izvršenje, mora se izvršiti sljedeća naredba.
$ chmod + x bash_demo.shIzlaz nakon odobrenja.
Kopirajte samo datoteke iz određenog direktorija
Za dohvaćanje svih datoteka i direktorija s određenog puta, koristit ćemo petlju for u skripti, a zatim filtrirati jedinu datoteku koristeći uvjet if. U donjem primjeru izvršavamo cp naredbu koja se izvršava samo ako je iterator bila datoteka koja je utvrđena -f zastavom.
#!/ bin / bashdpath = / var / log / nginx / *
za FILE u $ dpath
čini
ako [[-f $ FILE]]
zatim
cp $ FILE / home / $ USER /
drugo
echo „U datoj putanji nema datoteka."
fi
gotovo
Kopirajte sve datoteke s određenim nastavcima
U ovom ćemo primjeru kopirati sve datoteke s .nastavak dnevnika. Moramo dodati *.prijavite se na stazu tako da ponovite jedinu datoteku s .proširenje dnevnika samo za petlju.
#!/ bin / bashza FILE u / var / log / nginx / *.zapisnik
čini
cp $ FILE / home / $ USER /
gotovo
Kopirajte sve datoteke, uključujući direktorij
U ovom ćemo primjeru kopirati sve datoteke, uključujući direktorije, rekurzivno. Za to jednostavno trebamo dodati naredbu -R cp gdje -R određuje rekurzivno dohvaćanje direktorija.
#!/ bin / bashza FILE u / var / log / *
čini
cp -R $ FILE / home / $ USER /
gotovo
Kopirajte datoteke s korisničkog puta
U ovom ćemo primjeru kopirati datoteke iz korisničkog direktorija. Da bismo to učinili, upotrijebit ćemo naredbu read da bismo od korisnika zatražili put, a zatim provjerili pruža li korisnik put do dir-a ili ne, što se oznakom -d u stanju. Nakon provjere direktorija, upotrijebit ćemo petlju for da ponovimo sve datoteke i dir unutar zadane staze, a zatim opet filtriramo jedine datoteke koristeći uvjet if. Ako se uvjet podudara, izvršit će se sljedeća cp naredba.
#!/ bin / bashecho “Molimo navedite put do dir."
put čitanja
ako [[-d $ put]]
zatim
za FILE u $ path / *
čini
ako [[-f $ FILE]]
zatim
cp $ FILE / home / $ USER /
drugo
echo „U datoj putanji nema datoteka."
fi
gotovo
drugo
odjek "Potreban je put do direktorija"
fi
U svom kućnom direktoriju imam sljedeće datoteke i direktorij.
Izlaz pri pružanju putanje do datoteke.
Izlaz pri pružanju putanje direktne lokacije.
Nakon izvršavanja datoteke skripte, možemo provjeriti izlaz u unaprijed definiranom direktoriju u skripti. U mom slučaju kopirao sam datoteku u svoj kućni direktorij i rezultat je sljedeći.
Zaključak
U ovom članku saznajemo kako kopirati datoteke pomoću bash skriptiranja. Možemo se koristiti mnogim drugim operacijama poput petlje, if-else itd. Bash skriptiranje je učinkovitije kada radite s više naredbi za izvršavanje određenih zadataka. Nadam se da vam se sviđa ovaj članak o kopiranju datoteka pomoću bash skripte.