Linux'ta Dosya Adlarını Eşleştirmek İçin Joker Karakterlerin Kullanıldığı 10 Pratik Örnek


Joker karakterler (meta karakterler olarak da bilinir), diğer karakterleri temsil eden semboller veya özel karakterlerdir. Belirli bir kriterle eşleşen dosyaları alıcı olarak listelemek veya kaldırmak için bunları ls komutu veya rm komutu gibi herhangi bir komutla kullanabilirsiniz.

Ayrıca Okuyun: Linux'ta Operatörlerin Zincirlenmesine İlişkin 10 Faydalı Pratik Örnek

Bu joker karakterler kabuk tarafından yorumlanır ve sonuçlar çalıştırdığınız komuta döndürülür. Linux'ta üç ana joker karakter vardır:

  • Yıldız işareti (*) – hiçbir karakter de dahil olmak üzere herhangi bir karakterin bir veya daha fazla tekrarıyla eşleşir.
  • Soru işareti (?) – herhangi bir karakterin tek bir örneğini temsil eder veya eşleştirir.
  • Köşeli parantez içindeki karakterler ([ ]) – köşeli parantez içine alınmış herhangi bir karakterle eşleşir. Farklı türde karakterlerin (alfasayısal karakterler) kullanılması mümkündür: sayılar, harfler, diğer özel karakterler vb.

Doğru dosya adlarını eşleştirmek için hangi joker karakteri kullanacağınızı dikkatli bir şekilde seçmeniz gerekir: Aşağıdaki örneklerde açıklandığı gibi hepsini tek bir işlemde birleştirmek de mümkündür.

Linux'ta Joker Karakterler Kullanılarak Dosya Adları Nasıl Eşleştirilir?

Bu makalenin amacı doğrultusunda, her örneği göstermek için aşağıdaki dosyaları kullanacağız.

createbackup.sh  list.sh  lspace.sh        speaker.sh
listopen.sh      lost.sh  rename-files.sh  topprocs.sh

1. Bu komut, l (önektir) ile başlayan ve herhangi bir karakterin bir veya daha fazla tekrarı ile biten adlara sahip tüm dosyaları eşleştirir.

ls -l l*	

2. Bu örnek, users-0 ön ekine sahip ve herhangi bir karakterin bir veya daha fazla oluşumuyla biten tüm dosya adlarını kopyalamak için *'nin başka bir kullanımını gösterir.

mkdir -p users-info
ls users-0*
mv -v users-0* users-info/	# Option -v flag enables verbose output

3. Aşağıdaki komut, adları l ile başlayan, ardından herhangi bir tek karakter gelen ve st.sh (son ektir) ile biten tüm dosyaları eşleştirir ).

ls l?st.sh	

4. Aşağıdaki komut, adları l ile başlayıp köşeli parantez içindeki herhangi bir karakterin geldiği ancak st.sh ile biten tüm dosyaları eşleştirir. .

ls l[abdcio]st.sh 

Linux'ta Dosya Adlarını Eşleştirmek İçin Joker Karakterler Nasıl Birleştirilir

Aşağıdaki örneklerde açıklandığı gibi karmaşık bir dosya adı eşleştirme kriteri oluşturmak için joker karakterleri birleştirebilirsiniz.

5. Bu komut, herhangi iki karakterin ardından st gelen ancak herhangi bir karakterin bir veya daha fazla tekrarı ile biten tüm dosya adlarını eşleştirir.

ls
ls ??st*

6. Bu örnek, [clst] karakterlerinden herhangi biriyle başlayan ve herhangi bir karakterin bir veya daha fazla oluşumuyla biten dosya adlarıyla eşleşir.

ls
ls [clst]*

7. Bu örneklerde yalnızca [clst] karakterlerinden herhangi biriyle başlayan, ardından bu [io] karakterlerden biriyle başlayan ve ardından herhangi bir tek karakterle başlayan dosya adları karakter, ardından bir t gelir ve son olarak herhangi bir karakterin bir veya daha fazla tekrarı listelenir.

ls
ls [clst][io]?t*

8. Burada, herhangi bir karakterin bir veya daha fazla tekrarı ile başlayan, ardından tar harfleri gelen ve herhangi bir karakterin bir veya daha fazla tekrarı ile biten dosya adları kaldırılacaktır.

ls
rm *tar*
ls

Linux'ta Ayarlanan Karakterler Nasıl Eşleştirilir?

9. Şimdi bir karakter kümesinin nasıl belirleneceğine bakalım. Aşağıdaki sistem kullanıcı bilgilerini içeren dosya adlarını göz önünde bulundurun.

ls

users-111.list  users-1AA.list  users-22A.list  users-2aB.txt   users-2ba.txt
users-111.txt   users-1AA.txt   users-22A.txt   users-2AB.txt   users-2bA.txt
users-11A.txt   users-1AB.list  users-2aA.txt   users-2ba.list
users-12A.txt   users-1AB.txt   users-2AB.list  users-2bA.list

Bu komut, adı users-i ile başlayan, ardından bir sayı, küçük harf veya sayı, ardından bir sayı ve herhangi bir karakterin bir veya daha fazla oluşumuyla biten tüm dosyaları eşleştirir.

ls users-[0-9][a-z0-9][0-9]*

Sonraki komut, users-i ile başlayan, ardından bir sayı, bir küçük veya büyük harf veya sayı, ardından bir sayı gelen ve herhangi bir karakterin bir veya daha fazla oluşumuyla biten dosya adlarıyla eşleşir.

ls users-[0-9][a-zA-Z0-9][0-9]*

Aşağıdaki komut, users-i ile başlayan, ardından bir sayı, bir küçük veya büyük harf veya sayı, ardından bir küçük veya büyük harf ve bir veya daha fazla sayıda geçen dosya adlarıyla biten tüm dosya adlarıyla eşleşecektir. herhangi bir karakter.

ls users-[0-9][a-zA-Z0-9][a-zA-Z]*

Linux'ta Bir Karakter Kümesi Nasıl Engellenir

10. ! sembolünü kullanarak da bir karakter kümesini olumsuzlayabilirsiniz. Aşağıdaki komut, users-i ile başlayan, ardından bir sayı, sayı dışında herhangi bir geçerli dosya adlandırma karakteri, ardından bir küçük veya büyük harf gelen ve herhangi bir kelimenin bir veya daha fazla tekrarı ile biten tüm dosya adlarını listeler. karakter.

ls users-[0-9][!0-9][a-zA-Z]*

Şimdilik bu kadar! Yukarıdaki örnekleri denediyseniz, Linux'ta dosya adlarını eşleştirmek için joker karakterlerin nasıl çalıştığını artık iyi anlamış olmalısınız.

Linux'ta joker karakterlerin kullanımına ilişkin örnekleri gösteren aşağıdaki makaleleri de okumak isteyebilirsiniz:

  1. Tar Dosyalarını Linux'ta Belirli veya Farklı Dizine Çıkarma
  2. Bir Dizindeki Bir veya Birkaç Uzantılı Dosya Dışında Tüm Dosyaları Silmenin 3 Yolu
  3. Linux'ta Etkili Bash Komut Dosyaları Yazmak için 10 Faydalı İpucu
  4. Dosyalardaki Metin veya Dizeyi Filtrelemek için Awk ve Normal İfadeler Nasıl Kullanılır

Paylaşmak istediğiniz bir şey veya sormak istediğiniz soru/sorular varsa aşağıdaki yorum formunu kullanın.