Programovanie v jazyku BASH

Skopírujte zoznam súborov pomocou programu Bash Script

Skopírujte zoznam súborov pomocou programu Bash Script
Bash (Bourne Again Shell) je druh shellu, ktorý slúži na vykonávanie príkazov a skriptov. Bash bola vyvinutá verzia shellu sh. Bash Script je súbor, do ktorého sa na vykonanie konkrétnej úlohy skriptuje viac príkazov shellu. V tomto článku uvidíme, ako môžeme kopírovať viac súborov pomocou bash skriptu. V tomto článku používam Ubuntu 20.04 na demonštráciu príkladu.

Poznámka: - $ USER vytlačí používateľské mená aktuálnych prihlásených používateľov.

Ak ste zvedaví, aká verzia bash shellu je v systéme nainštalovaná, môžeme ju skontrolovať pomocou nasledujúceho príkazu.

$ bash --verzia

Výstup verzie Bash.

Vytváranie a vykonávanie skriptu Bash

Začnime vytvorením jednoduchého súboru pomocou ľubovoľného editora podľa vášho výberu. Pre mňa je editor vi pohodlnejší. Aby bol súbor spustiteľný, musíme pridať shebang (!#) a umiestnenie tlmočníka bash na začiatku skriptu. Vytvoril som text.Súbor txt a pridajte ho do adresára bash_demo v mojom domovskom adresári, ktorý obsahuje nejaký text na demonštračné účely.

$ touch bash_demo.š
$ vi bash_demo.š

Pridajte nasledujúce riadky do svojho textového editora, aby ste vytvorili ukážku po vytvorení súboru; ak nemáte, editor vytvorí nový súbor pri zápise a ukončení.

#!/ bin / bash
cp text.txt / tmp /
echo „Súbor bol skopírovaný.“

Skript môžeme vykonať pomocou ./ pred súborom skriptu, ktorý určuje aktuálny súbor dir.

$ ./ bash_demo.š

Po vykonaní skriptu bude v našom termináli vyhodená nasledujúca chyba.

Počiatočné spustenie súboru bash.

Keď predvolene vytvoríme súbor, používateľ nemá povolenie na vykonávanie tohto súboru. Ak chcete používateľovi poskytnúť povolenie na vykonanie, je potrebné vykonať nasledujúci príkaz.

$ chmod + x bash_demo.š

Výstup po udelení povolenia.

Kopírujte iba súbory z konkrétneho adresára

Na načítanie všetkých súborov a adresárov z konkrétnej cesty použijeme v skripte cyklus for a potom odfiltrujeme jediný súbor pomocou podmienky if. V nasledujúcom príklade vykonáme príkaz cp, iba ak bol iterátorom súbor, ktorý je určený príznakom -f.

#!/ bin / bash
dpath = / var / log / nginx / *
pre SÚBOR v $ dpath
robiť
ak [[-f $ SÚBOR]]
potom
cp $ FILE / home / $ USER /
inak
echo „Na danej ceste nie sú žiadne súbory.“
fi
hotový

Skopírujte všetky súbory konkrétnych prípon

V tomto príklade skopírujeme všetky súbory pomocou .rozšírenie protokolu. Musíme pridať *.prihlásiť sa k ceste tak, aby iteroval jediný súbor s .rozšírenie protokolu iba pre slučku.

#!/ bin / bash
pre SÚBOR v / var / log / nginx / *.log
robiť
cp $ FILE / home / $ USER /
hotový

Skopírujte všetky súbory vrátane adresára

V tomto príklade rekurzívne skopírujeme všetky súbory vrátane adresárov. Na to musíme jednoducho pridať príkaz -R cp, kde -R určuje rekurzívne načítanie adresára.

#!/ bin / bash
pre SÚBOR v / var / log / *
robiť
cp -R $ SÚBOR / domov / $ USER /
hotový

Skopírujte súbory z cesty zadanej používateľom

V tomto príklade skopírujeme súbory z adresára zadaného používateľom. Za týmto účelom použijeme príkaz read na vyžiadanie cesty od používateľa, potom skontrolujeme, či používateľ zadá cestu dir alebo nie, čo sa deje pomocou príznaku -d v podmienke. Po overení dir použijeme slučku for na iteráciu všetkých súborov a dir vo vnútri danej cesty, potom opäť odfiltrujeme jediné súbory pomocou podmienky if. Ak sa podmienka zhoduje, vykoná sa nasledujúci príkaz cp.

#!/ bin / bash
echo „Prosím, zadajte cestu k adresáru.“
čítaná cesta
ak [[-d $ cesta]]
potom
pre SÚBOR v $ ceste / *
robiť
ak [[-f $ SÚBOR]]
potom
cp $ FILE / home / $ USER /
inak
echo „Na danej ceste nie sú žiadne súbory.“
fi
hotový
inak
echo „Vyžaduje sa cesta k adresáru“
fi

Vo svojom domovskom adresári mám nasledujúce súbory a adresár.

Výstup pri zadávaní cesty k súboru.

Výstup pri zadávaní cesty k adresáru.

Po vykonaní súboru skriptu môžeme skontrolovať výstup v preddefinovanom adresári skriptu. V mojom prípade som si súbor skopíroval do domovského adresára a výsledok je nasledujúci.

Záver

V tomto článku sa dozvieme, ako kopírovať súbory pomocou skriptu bash. Môžeme použiť mnoho ďalších operácií, ako napríklad slučka, ak-inak, atď. Skriptovanie Bash je efektívnejšie pri práci s viacerými príkazmi na vykonávanie konkrétnych úloh. Dúfam, že sa vám páči tento článok o kopírovaní súborov pomocou bash skriptu.

WinMouse vám umožňuje prispôsobiť a vylepšiť pohyb ukazovateľa myši na počítači so systémom Windows
Ak chcete vylepšiť predvolené funkcie kurzora myši, použite freeware WinMouse. Pridáva ďalšie funkcie, ktoré vám pomôžu vyťažiť zo svojej skromnej myš...
Tlačidlo ľavého kliknutia myši nefunguje v systéme Windows 10
Ak používate samostatnú myš s prenosným počítačom alebo stolovým počítačom, ale nefunguje ľavé tlačidlo myši vo Windows 10/8/7 z nejakého dôvodu uvádz...
Kurzor pri písaní v systéme Windows 10 skáče alebo sa pohybuje náhodne
Ak zistíte, že kurzor myši skáče alebo sa pohybuje sám, automaticky a náhodne pri písaní na notebooku alebo počítači so systémom Windows, niektoré z t...