A shell a minta helyére behelyettesíti az összes olyan fájlnevet (az adott könyvtárban), ami illeszkedik a mintára, abc sorrendben. Például, ha egy könyvtárban a következő fájlok vannak:
$ ls README.Debian isodemo pvmpov.doc.gz README.data isodocs res1024.ini README.pvmpov low.ini res120.ini allscene.ini pngflc.ini res320.ini changelog.Debian.gz pov3demo res640.ini changelog.gz povray.doc.gz res800.ini copyright povray.ini slow.ini docsdemo povscn texsamps gamma.gif ppmmpeg.ini tgafli.ini gamma.gif.txt pvm_install.doc $akkor a ''*.ini'' helyére az ''allscene.ini povray.ini res120.ini res800.ini low.ini ppmmpeg.ini res320.ini slow.ini pngflc.ini res1024.ini res640.ini tgafli.ini'' kerül. Tehát az
$ ls *.iniparancs kiadásakor a shell behelyettesítése miatt valójában a következő parancs lesz végrehajtva:
$ ls allscene.ini povray.ini res120.ini res800.ini low.ini ppmmpeg.ini res320.ini slow.ini pngflc.ini res1024.ini res640.ini tgafli.inivagyis kilistázza a fenti fájlokat. A behelyettesítést nem az ls hajtja végre, hanem a shell.
Ha nincs olyan fájl, ami a mintára illeszkedik, akkor a parancs magát a mintát kapja meg. Ez az ls esetében azt jelenti, hogy egy - a mintával azonos nevű - fájlt szeretnénk kiiratni - s mivel ilyen nem létezik, az ls kiírja, hogy nem találja a fájlt.
$ ls *xxx ls: *xxx: No such file or directory $
Sok parancsnak adható meg több fájlnév. Ha a cp és mv parancsoknak több fájlnevet adunk meg, akkor ezek után egy könyvtárat kell megadnunk, melybe a felsorolt fájlok kerülnek. Az rm parancs is használható több fájlnévvel. Ebben az esetben a felsorolt fájlok mind törlődnek.
| Veszély |
Más operációs rendszerek esetében két minta egymás után írása használható speciális feladatokra, például DOS alatt a ren *.txt *.doc[1] minden .txt kiterjesztésű fájlt átnevez .doc kiterjesztésűre. Linux alatt ez nem használható, mivel mind a két minta kibontásra kerül, így az mv parancs egymásután megkapja a két mintának megfelelő fájlneveket, nem tudván, hogy azok két mintához tartoztak. |
A minták behelyettesítését két módon lehet megakadályozni. Tehetünk egy \ karaktert minden speciális karakter elé, például így:
$ ls \*\? ls: *?: No such file or directory $vagy a mintát két ' karakter közé foglalva:
$ ls '***?' ls: ***?: No such file or directory $Speciális karaktereket (*, ? és [) tartalmazó fájlnevek használata lehetséges, de nem javasolt.
| [1] | a ren az mv DOS-beli megfelelője. |