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 - versijaBash 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 / bashkp 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.shIzpildot 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.shRezultā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 / bashdpath = / 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 / bashFILE 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 / bashFILE 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 / bashatbalss “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.