A 'basename' paranccsal olvassa el a fájlnevet
A 'basename' parancs a fájlnév kiterjesztés nélküli olvasására szolgál egy könyvtárból vagy fájl elérési útjából.
Szintaxis:
alapnévNÉV[SUFFIX]
vagy
alapnévOPCIÓ ... NAME ...
Itt a NAME tartalmazhatja a fájlnevet vagy a teljes elérési utat tartalmazó fájlnevet. A SUFFIX opcionális, és tartalmazza a felhasználó által eltávolítani kívánt fájlkiterjesztési részt. A 'basename' parancs néhány opciót tartalmaz, amelyeket az alábbiakban ismertetünk.
Lehetőségek
Név | Leírás |
-nak nek | Több fájlnév átadására szolgál elérési útvonallal vagy útvonal nélkül parancs argumentumként. |
-s | Arra szolgál, hogy a kiterjesztést utótagként adja át, amelyet el kell távolítani. |
-Val vel | A több fájlnév megjelenítésére szolgál, minden fájlt nullával elválasztva. |
-Segítség | A 'basename' parancs használatával kapcsolatos információk megjelenítésére szolgál. |
-változat | A verzióinformációk megjelenítésére szolgál. |
1. példa: A NAME és a SUFFIX használata
A következő 'basename' parancs lekéri a kiterjesztésű fájlnevet. A SUFFIX ki van hagyva ebből a parancsból. Itt a kimenet „Product.txt” .
$alapnév /itthon/fahmida/kód/product.txt
Ha kiterjesztés nélkül szeretné lekérni a fájlnevet, akkor a fájlkiterjesztést SUFFIX -ként kell megadnia a 'basename' paranccsal. Itt a kiterjesztés .txt. Futtassa a következő parancsot a kiterjesztés eltávolításához a fájlból.
$alapnév /itthon/fahmida/kód/product.txt .txt
2. példa: Az „-a” opció és a NAME használata
Ebben a példában a 'basename' parancs '-a' opciójának használata látható. Itt két fájl elérési útja kerül átadásra argumentumként a 'basename' paranccsal. Minden kiterjesztésű fájlnév lekérésre kerül az útvonalból, és új sorban nyomtatódik.
$alapnév -nak nek /itthon/fahmida/index.html/itthon/fahmida/kód/emp.txt
3. példa: A „-z” opció és a NAME használata
A '-z' opciót a 'basename' paranccsal használjuk a több fájlnév null értékű nyomtatására az újsor helyett. A következő parancs két lehetőséget használ együtt: „-a” és „-z”. Itt két fájlnév, index.html és emp.txt szóköz és új sor nélkül nyomtat.
$alapnév -az /itthon/fahmida/index.html/itthon/fahmida/kód/emp.txt
4. példa: Az „-s” opció és a NAME használata
A következő parancs használható a 'basename' nevű SUFFIX alternatívájaként. A fájlkiterjesztésnek át kell esnie a „-sh” opcióval, hogy eltávolítsa a fájlkiterjesztést a fájlból. A következő példa eltávolítja a „-sh” kiterjesztést a fájlból, „add.sh”.
$alapnév -s.sh kiegészítés.sh
5. példa: Távolítsa el a fájlkiterjesztést SUFFIX nélkül
Ha nem ismeri a fájlnévből eltávolítani kívánt fájl kiterjesztését, akkor ez a példa segít a probléma megoldásában. Hozzon létre egy nevű fájlt read_file.sh a következő kóddal a kiterjesztés fájlnevének lekéréséhez. Ebben a példában a `sed` parancsot használjuk bármilyen típusú kiterjesztés eltávolítására a fájlnévből. Ha futtatja a szkriptet, a kimenet „ átlagos 'A kiterjesztés eltávolítása után' py '.
read_file.sh
#!/bin/bash# Állítsa be a fájlnevet az elérési útvonallal
fájl név='/home/fahmida/code/average.py'
# Olvassa el a fájlnevet kiterjesztés nélkül a „basname” és a „sed” paranccsal
kidobta '$ (alapnév '$ fájlnév' | sed 's/ (.*) ..*/ 1/')'
Futtassa a szkriptet.
$bashread_file.sh
6. példa: A fájlkiterjesztés konvertálása txt-ből docx-be
A kiterjesztés nélküli fájlnévnek át kell alakítania a fájlt egyik kiterjesztésről a másikra. Ez a példa azt mutatja, hogy hogyan módosíthatja az összes szöveges fájl (.txt) kiterjesztését a word fájlokká (.docx) a bash scriptben található 'basename' paranccsal. Hozzon létre egy fájlt, convert_file.sh a következő kóddal. Itt egy for-in ciklus használható az összes szöveges fájl olvasására .txt kiterjesztés az aktuális könyvtárból. A kiterjesztés nélküli fájlnevet a 'basename' parancs olvassa be, és a .docx kiterjesztés hozzáadásával a ciklus minden iterációjában átnevezi.
convert_file.sh
#!/bin/bash# a ciklus minden szövegfájlt kiolvas az aktuális könyvtárból
számárafájl névban ben ``ls *.txt``
tedd
# Nyomtassa ki a szöveges fájlnevet az átalakítás előtt
kidobta 'Fájlnév konvertálás előtt:$ fájlnév'
# Módosítsa a txt fájl kiterjesztését docx -re
mv - '$ fájlnév' '$ (basename - '$ fájlnév' .txt).docx '
Kész
Futtassa a szkriptet.
$bashconvert_file.shAz 'ls' paranccsal ellenőrizze, hogy a szövegfájlok konvertálva vannak -e vagy sem.
$ls
7. példa: A fájlnév kiterjesztés nélküli olvasása Shell paraméterbővítéssel
A Shell paraméterbővítés egy másik módja annak, hogy a fájlnevet kiterjesztés nélkül olvassa el a bash -ban. Ez a példa a shell paraméterbővítés felhasználását mutatja be. A következő parancs tárolja a fájl elérési útját a $ változóban fájl név .
$fájl név='/var/usr/temp/myfile.tar.gz'A következő parancs eltávolítja az összes bővítményt az útvonalból, és tárolja a fájl útvonalát kiterjesztés nélkül a változóban, $ fájl1 .
$fájl1='$ {fájlnév %%.*}'A következő parancs csak a fájlból nyomtatja ki a fájlnevet. Itt a kimenet ' fájlom '.
$kidobta '$ {file1 ##*/}'Ha a fájlnév két, kétpontos (.) Kiterjesztést tartalmaz, és a fájl utolsó kiterjesztésének eltávolításával szeretné elolvasni a fájlnevet, akkor a következő parancsot kell használnia. Futtassa a következő parancsot, amely tárolja a fájl elérési útját a változóba, $ fájl2 a fájl utolsó kiterjesztésének eltávolításával.
$fájl2='$ {fájlnév%.*}'Most futtassa a következő parancsot a fájlnév egypontos (.) Kiterjesztéssel történő nyomtatásához. Itt a kimenet lesz myfile.tar.
$kidobta '$ {file2 ## * /}'
Következtetés
A kiterjesztés nélküli fájlnév különböző célokra szükséges. A kiterjesztés nélküli fájlnév néhány használatát ebben az oktatóanyagban néhány példával, például fájlkonvertálással ismertetjük. Ez az oktatóanyag segítséget nyújt azoknak a felhasználóknak, akiket érdekel, hogy megtanulják, hogyan lehet elválasztani a fájlnevet és a kiterjesztést a fájl elérési útjától. Itt két módszert ismertetünk. A felhasználó az alábbi módszerek bármelyikét követve csak a fájl elérési útjából vonhatja ki a fájlnevet.