BASH programozás

Fájllista másolása Bash Script használatával

Fájllista másolása Bash Script használatával
A Bash (Bourne Again Shell) egy olyan héj, amely parancsok és szkriptek végrehajtására szolgál. A Bash a kagyló fejlesztett változata volt. A Bash Script egy fájl, amelyhez több shell parancs van parancsolva egy adott feladat végrehajtásához. Ebben a cikkben megtudjuk, hogyan másolhatunk több fájlt egy bash szkript segítségével. Ehhez a cikkhez az Ubuntu 20-at használom.04 a példa bemutatására.

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 / bash
cp 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.SH

Amikor 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.SH

Kimenet 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 / bash
dpath = / 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 / bash
a 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 / bash
a 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 / bash
visszhang "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.

Microsoft Sculpt Touch vezeték nélküli egér áttekintés
Nemrég olvastam a Microsoft Sculpt Touch vezeték nélküli egér és úgy döntött, hogy megveszi. Egy ideig használat után úgy döntöttem, hogy megosztom ve...
AppyMouse képernyős Trackpad és egérmutató a Windows táblagépekhez
A táblagép-felhasználók gyakran hiányolják az egérmutatót, különösen akkor, ha szokták használni a laptopokat. Az érintőképernyős okostelefonok és táb...
Az egér középső gombja nem működik a Windows 10 rendszerben
A középső egérgomb segít átgörgetni a hosszú weboldalakat és a sok adatot tartalmazó képernyőket. Ha ez leáll, akkor a billentyűzet segítségével görge...