BASH programmēšana

Kopēt failu sarakstu, izmantojot Bash skriptu

Kopēt failu sarakstu, izmantojot Bash skriptu
Bash (Bourne Again Shell) ir tāda veida apvalks, kas paredzēts komandu un skriptu izpildei. Bash bija izstrādāta čaulas apvalka versija. Bash Script ir fails, kurā, lai veiktu noteiktu uzdevumu, tiek skripti vairākas apvalka komandas. Šajā rakstā mēs redzēsim, kā mēs varam kopēt vairākus failus, izmantojot bash skriptu. Šim rakstam es izmantoju Ubuntu 20.04, lai parādītu piemēru.

Piezīme: - $ USER izdrukās pašreizējo pieteikšanās lietotāju lietotājvārdus.

Ja vēlaties zināt, kāda bash apvalka versija ir instalēta sistēmā, mēs to varam pārbaudīt, izmantojot šādu komandu.

$ bash - versija

Bash versijas izeja.

Bash skripta izveide un izpilde

Sāksim ar vienkārša faila izveidi, izmantojot jebkuru izvēlēto redaktoru. Man ērtāk ir redaktors vi. Lai padarītu failu izpildāmu, mums jāpievieno shebang (!#) un bash tulka atrašanās vieta skripta sākumā. Esmu izveidojis tekstu.txt failu un pievienojiet to manas mājas direktora bash_demo dir, kas satur tekstu demo nolūkiem.

$ touch bash_demo.sh
$ vi bash_demo.sh

Pēc faila izveidošanas pievienojiet šādas rindas teksta redaktorā, lai demonstrētu paraugu; ja jūs to neesat izdarījis, redaktors izveidos jaunu failu rakstīšanas laikā un beigs.

#!/ bin / bash
kp teksts.txt / tmp /
atbalss “Fails nokopēts.”

Mēs varam izpildīt skriptu, izmantojot ./ pirms skripta faila, kas nosaka pašreizējo dir failu.

$ ./ bash_demo.sh

Izpildot skriptu, mūsu terminālā tiks izmesta šāda kļūda.

Sākotnējā bash faila izpilde.

Kad pēc noklusējuma izveidojam failu, lietotājam nav faila izpildes atļaujas. Lai nodrošinātu izpildes atļauju lietotājam, ir jāizpilda šāda komanda.

$ chmod + x bash_demo.sh

Rezultāts pēc atļaujas piešķiršanas.

Kopējiet tikai failus no noteikta direktorija

Lai ielādētu visus failus un direktorus no noteikta ceļa, mēs izmantosim skripta cilpu, pēc tam filtrēsim vienīgo failu, izmantojot nosacījumu if. Zemāk esošajā piemērā mēs izpildām komandu cp tikai tad, ja iterators bija fails, kas ir noteikts -f karodziņš.

#!/ bin / bash
dpath = / var / log / nginx / *
par FILE $ dpath
darīt
ja [[-f $ FILE]]
pēc tam
cp $ FILE / home / $ USER /
cits
atbalss “Dotajā ceļā nav failu.”
fi
izdarīts

Kopējiet visus konkrētu paplašinājumu failus

Šajā piemērā mēs kopēsim visus failus ar .žurnāla pagarinājums. Mums jāpievieno *.piesakieties ceļā, lai atkārtotu vienīgo failu ar .žurnāla paplašinājums tikai cilpai.

#!/ bin / bash
FILE mapē / var / log / nginx / *.žurnāls
darīt
cp $ FILE / home / $ USER /
izdarīts

Kopēt visus failus, ieskaitot direktoriju

Šajā piemērā mēs visus failus, ieskaitot direktorijus, kopēsim rekursīvi. Lai to izdarītu, mums vienkārši jāpievieno komanda -R cp, kur -R nosaka direktorija rekursīvu ielādi.

#!/ bin / bash
FILE mapē / var / log / *
darīt
cp -R $ FILE / home / $ USER /
izdarīts

Kopējiet failus no lietotāja norādītā ceļa

Šajā piemērā mēs kopēsim failus no lietotāja norādītā direktora. Lai to izdarītu, mēs izmantosim komandu read, lai pieprasītu ceļu no lietotāja, pēc tam pārbaudiet, vai lietotājs nodrošina ceļu uz dir vai nē, ko nosacījumā veic karodziņš -d. Pēc dir verifikācijas mēs izmantosim for for ciklu, lai atkārtotu visus failus un dir norādītajā ceļā, pēc tam atkal filtrēsim vienīgos failus, izmantojot nosacījumu. Ja nosacījums sakrīt, tiks izpildīta šāda komanda cp.

#!/ bin / bash
atbalss “Lūdzu, norādiet ceļu uz rež.”
lasīt ceļu
ja [[-d $ ceļš]]
pēc tam
failam FILE $ path / *
darīt
ja [[-f $ FILE]]
pēc tam
cp $ FILE / home / $ USER /
cits
atbalss “Dotajā ceļā nav failu.”
fi
izdarīts
cits
atbalss “Nepieciešams ceļš uz dir”
fi

Manā mājas direktorā man ir šādi faili un direktor.

Izeja, norādot faila ceļu.

Izeja, norādot tiešās atrašanās vietas ceļu.

Pēc skripta faila izpildes mēs varam pārbaudīt izvadi skripta iepriekš noteiktajā direktorijā. Manā gadījumā failu esmu nokopējis mājas direktorijā, un rezultāts ir šāds.

Secinājums

Šajā rakstā mēs uzzinām par to, kā kopēt failus, izmantojot bash skriptu. Mēs varam izmantot daudzas citas darbības, piemēram, cilpu, ja-vēl, utt. Bash skripti ir efektīvāki, strādājot ar vairākām komandām, lai veiktu noteiktus uzdevumus. Es ceru, ka jums patīk šis raksts par failu kopēšanu, izmantojot bash skriptu.

WinMouse ļauj jums pielāgot un uzlabot peles rādītāja kustību Windows datorā
Ja vēlaties uzlabot peles rādītāja noklusējuma funkcijas, izmantojiet bezmaksas programmatūru WinMouse. Tas pievieno vairāk funkciju, kas palīdzēs jum...
Peles kreisā klikšķa poga nedarbojas operētājsistēmā Windows 10
Ja ar klēpjdatoru vai galddatoru izmantojat īpašu peli, bet nedarbojas peles kreisās klikšķa poga kādu iemeslu dēļ operētājsistēmā Windows 10/8/7 šeit...
Rakstot Windows 10, kursors lec vai pārvietojas nejauši
Ja atklājat, ka peles kursors automātiski, nejauši lec vai pārvietojas pats, rakstot Windows klēpjdatorā vai datorā, daži no šiem ieteikumiem var palī...