BASH programiranje

Kopirajte popis datoteka pomoću Bash skripte

Kopirajte popis datoteka pomoću Bash skripte
Bash (Bourne Again Shell) vrsta je ljuske koja služi za izvršavanje naredbi i skripti. Bash je bila razvijena verzija sh školjke. Bash Script je datoteka u kojoj se skriptira više naredbi ljuske za izvršavanje određenog zadatka. U ovom ćemo članku vidjeti kako možemo kopirati više datoteka pomoću bash skripte. Za ovaj članak koristim Ubuntu 20.04 za demonstraciju primjera.

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

Izlaz 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 / bash
cp tekst.txt / tmp /
echo „Datoteka kopirana."

Skriptu možemo izvršiti pomoću ./ prije datoteke skripte, koja određuje trenutnu dir datoteku.

$ ./ bash_demo.sh

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

Izlaz 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 / bash
dpath = / 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 / bash
za 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 / bash
za 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 / bash
echo “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.

Kako koristiti Xdotool za poticanje klikova i pritiska miša u Linuxu
Xdotool je besplatni alat za naredbene retke otvorenog koda za simulaciju klikova mišem i pritiska tipki. Ovaj će članak pokrivati ​​kratki vodič o ko...
Top 5 ergonomskih proizvoda za računalni miš za Linux
Uzrokuje li dugotrajno korištenje računala bolove u zapešću ili prstima? Patite li od ukočenih zglobova i stalno se morate rukovati? Osjećate li goruć...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...