Programování BASH

Kopírování seznamu souborů pomocí Bash Script

Kopírování seznamu souborů pomocí Bash Script
Bash (Bourne Again Shell) je druh prostředí, které slouží k provádění příkazů a skriptů. Bash byla vyvinutá verze sh shell. Bash Script je soubor, do kterého je skriptováno více příkazů prostředí, aby bylo možné provést konkrétní úkol. V tomto článku uvidíme, jak můžeme kopírovat více souborů pomocí bash skriptu. V tomto článku používám Ubuntu 20.04 k předvedení příkladu.

Poznámka: - $ USER vytiskne uživatelská jména uživatelů aktuálních přihlášení.

Pokud vás zajímá, jaká verze prostředí bash je nainstalována v systému, můžeme ji zkontrolovat pomocí následujícího příkazu.

$ bash - verze

Výstup verze Bash.

Vytvoření a spuštění skriptu Bash

Začněme vytvořením jednoduchého souboru pomocí libovolného editoru podle vašeho výběru. Pro mě je editor vi pohodlnější. Aby byl soubor spustitelný, musíme přidat shebang (!#) a umístění interpretu bash na začátku skriptu. Vytvořil jsem text.Soubor txt a přidejte jej do adresáře bash_demo v mém domovském adresáři, který obsahuje nějaký text pro demo účely.

$ touch bash_demo.sh
$ vi bash_demo.sh

Přidejte následující řádky do textového editoru pro ukázku ukázky po vytvoření souboru; pokud nemáte, editor vytvoří nový soubor při zápisu a ukončení.

#!/ bin / bash
cp text.txt / tmp /
echo „Soubor zkopírován.“

Skript můžeme spustit pomocí ./ před soubor skriptu, který určuje aktuální soubor dir.

$ ./ bash_demo.sh

Když provedeme skript, bude v našem terminálu vyvolána následující chyba.

Počáteční spuštění souboru bash.

Když ve výchozím nastavení vytvoříme soubor, uživatel nemá oprávnění k provedení souboru. Chcete-li uživateli poskytnout oprávnění ke spuštění, je třeba provést následující příkaz.

$ chmod + x bash_demo.sh

Výstup po udělení povolení.

Zkopírujte pouze soubory z konkrétního adresáře

Pro načtení všech souborů a adresářů z určité cesty použijeme ve skriptu smyčku for a poté odfiltrujeme jediný soubor pomocí podmínky if. V níže uvedeném příkladu provedeme příkaz cp pouze v případě, že iterátorem byl soubor, který je určen příznakem -f.

#!/ bin / bash
dpath = / var / log / nginx / *
pro SOUBOR v $ dpath
dělat
pokud [[-f $ SOUBOR]]
pak
cp $ FILE / home / $ USER /
jiný
echo „V dané cestě nejsou žádné soubory.“
fi
Hotovo

Zkopírujte všechny soubory konkrétních přípon

V tomto příkladu zkopírujeme všechny soubory pomocí .přípona protokolu. Musíme přidat *.přihlaste se k cestě, aby iteroval jediný soubor s .přípona protokolu pouze pro smyčku.

#!/ bin / bash
pro SOUBOR v / var / log / nginx / *.log
dělat
cp $ FILE / home / $ USER /
Hotovo

Zkopírujte všechny soubory, včetně adresáře

V tomto příkladu rekurzivně zkopírujeme všechny soubory, včetně adresářů. K tomu jednoduše potřebujeme přidat příkaz -R cp, kde -R určuje rekurzivně načítání adresáře.

#!/ bin / bash
pro SOUBOR v / var / log / *
dělat
cp -R $ FILE / home / $ USER /
Hotovo

Zkopírujte soubory z cesty zadané uživatelem

V tomto příkladu zkopírujeme soubory z uživatelem zadaného adresáře. K tomu použijeme příkaz read k vyžádání cesty od uživatele a poté zkontrolujeme, zda uživatel zadá cestu k adresáři nebo ne, což se provádí pomocí parametru -d v podmínce. Po ověření dir použijeme smyčku for k iteraci všech souborů a dir uvnitř dané cesty, pak znovu odfiltrujeme pouze soubory pomocí podmínky if. Pokud podmínka odpovídá, bude proveden následující příkaz cp.

#!/ bin / bash
echo „Uveďte prosím cestu k adresáři.“
číst cestu
pokud [[-d $ cesta]]
pak
pro SOUBOR v $ cestě / *
dělat
pokud [[-f $ SOUBOR]]
pak
cp $ FILE / home / $ USER /
jiný
echo „V dané cestě nejsou žádné soubory.“
fi
Hotovo
jiný
echo „Je vyžadována cesta k adresáři“
fi

Ve svém domovském adresáři mám následující soubory a adresář.

Výstup při zadávání cesty k souboru.

Výstup při zadávání cesty umístění adresáře.

Po provedení souboru skriptu můžeme zkontrolovat výstup v předdefinovaném adresáři ve skriptu. V mém případě jsem zkopíroval soubor do svého domovského adresáře a následuje výsledek.

Závěr

V tomto článku se dozvídáme, jak kopírovat soubory pomocí skriptu bash. Můžeme použít mnoho dalších operací, jako je smyčka, if-else atd. Bash skriptování je efektivnější při práci s více příkazy k provádění konkrétních úkolů. Doufám, že se vám tento článek o kopírování souborů pomocí bash skriptu líbí.

Emulace kliknutí myší vznášením pomocí myši Clickless Mouse ve Windows 10
Používání myši nebo klávesnice ve špatném držení těla nadměrného používání může mít za následek mnoho zdravotních problémů, včetně napětí, syndromu ka...
Přidejte gesta myši do Windows 10 pomocí těchto bezplatných nástrojů
V posledních letech se počítače a operační systémy značně vyvinuly. Bývaly doby, kdy uživatelé museli procházet správci souborů pomocí příkazů. Stejně...
Ovládejte a spravujte pohyb myši mezi více monitory ve Windows 10
Správce myší se dvěma displeji umožňuje ovládat a konfigurovat pohyb myši mezi více monitory zpomalením jeho pohybů poblíž hranice. Windows 10/8 vám u...