Megjegyzés: - A $ USER kinyomtatja a jelenlegi bejelentkezési felhasználók felhasználóneveit.
Ha kíváncsi arra, hogy a bash shell mely verziója van telepítve a rendszerbe, a következő paranccsal ellenőrizhetjük.
$ bash --verzióBash verzió kimenet.
Bash Script létrehozása és végrehajtása
Kezdjük egy egyszerű fájl létrehozásával bármely tetszőleges szerkesztővel. Számomra a vi szerkesztő kényelmesebb. A fájl futtathatóvá tételéhez hozzá kell adnunk a shebang (!#) és a bash tolmács helye a szkript elején. Létrehoztam egy szöveget.txt fájlt, és adja hozzá az otthoni könyvtáram bash_demo könyvtárához, amely tartalmaz némi szöveget bemutató célokra.
$ touch bash_demo.SH$ vi bash_demo.SH
Adja hozzá a következő sorokat a szövegszerkesztőjébe a minta bemutatásához egy fájl létrehozása után; ha még nem tette meg, a szerkesztő létrehoz egy új fájlt az írás és a kilépés mellett.
#!/ bin / bashcp szöveg.txt / tmp /
echo “A fájl másolva.”
A szkriptet a ./ a szkriptfájl előtt, amely meghatározza az aktuális dir fájlt.
$ ./ bash_demo.SHAmikor végrehajtjuk a szkriptet, a következő hiba fog bekerülni a terminálunkba.
A bash fájl kezdeti végrehajtása.
Amikor alapértelmezés szerint létrehozunk egy fájlt, a felhasználónak nincs végrehajtási engedélye a fájlhoz. A felhasználó számára végrehajtási engedély megadásához a következő parancsot kell végrehajtani.
$ chmod + x bash_demo.SHKimenet engedély megadása után.
Csak fájlokat másolhat egy adott könyvtárból
Az összes fájl és könyvtár lekéréséhez egy adott útvonalról a ciklushoz fogjuk használni a szkriptet, majd az egyetlen fájlt kiszűrjük az if feltétel használatával. Az alábbi példában a cp parancsot csak akkor hajtjuk végre, ha az iterátor olyan fájl volt, amelynek meghatározása -f flag.
#!/ bin / bashdpath = / var / log / nginx / *
a FILE fájlhoz $ dpath-ban
csinálni
ha [[-f $ FILE]]
azután
cp $ FILE / home / $ USER /
más
echo „Nincsenek fájlok a megadott útvonalon.”
fi
Kész
Másolja az összes kiterjesztésű fájlt
Ebben a példában az összes fájlt átmásoljuk a .napló kiterjesztés. Hozzá kell tennünk *.jelentkezzen be az elérési útra, hogy az egyetlen fájlt iterálja .napló kiterjesztés csak a hurokhoz.
#!/ bin / basha FILE fájlhoz a / var / log / nginx / * fájlban.napló
csinálni
cp $ FILE / home / $ USER /
Kész
Másolja az összes fájlt, beleértve a könyvtárat is
Ebben a példában az összes fájlt, beleértve a könyvtárakat is, rekurzív módon másoljuk. Ehhez egyszerűen hozzá kell adnunk az -R cp parancsot, ahol az -R meghatározza a könyvtár rekurzív beolvasását.
#!/ bin / basha FILE fájlhoz a / var / log / * fájlban
csinálni
cp -R $ FILE / home / $ USER /
Kész
Fájlok másolása a felhasználó által megadott útvonalról
Ebben a példában fájlokat másolunk a felhasználó által megadott dir-ből. Ehhez a read paranccsal kérjük az elérési utat a felhasználótól, majd ellenőrizzük, hogy a felhasználó megadja-e az utat a dir-hez vagy sem, amit a -d jelző végez a feltételben. A dir ellenőrzése után a for ciklust használjuk az összes fájl és az adott útvonal belsejében lévő iterálásához, majd az if feltétel használatával ismét kiszűrjük az egyetlen fájlt. Ha a feltétel egyezik, akkor a következő cp parancs kerül végrehajtásra.
#!/ bin / bashvisszhang "Kérjük, adja meg az utat a dir.”
olvasási útvonal
ha [[-d $ elérési út]]
azután
a FILE fájlhoz $ path / * -ban
csinálni
ha [[-f $ FILE]]
azután
cp $ FILE / home / $ USER /
más
echo „Nincsenek fájlok a megadott útvonalon.”
fi
Kész
más
echo "Útvonal a dirig szükséges"
fi
Az otthoni könyvtáramban a következő fájlok és dir.
Kimenet egy fájl elérési útjának megadásakor.
Kimenet a dir hely elérési útjának megadásakor.
A szkriptfájl végrehajtása után ellenőrizhetjük a kimenetet a szkript előre definiált dir-jében. Esetemben átmásoltam a fájlt az otthoni könyvtáramba, és a következő az eredmény.
Következtetés
Ebben a cikkben megtudhatjuk, hogyan lehet fájlokat másolni a bash parancsfájlok használatával. Számos egyéb műveletet használhatunk, például ciklust, ha-mást stb. A Bash szkriptek hatékonyabbak, ha több paranccsal dolgoznak meghatározott feladatok elvégzésében. Remélem, tetszik ez a cikk a fájlok bash szkript használatával történő másolásáról.