Linux'ta Yalnızca Dizinleri Özyinelemeli Olarak Listelemek mi?

Is List Only Directories Recursively Linux



Özyinelemeli kelimesi, bir Linux veya Unix işletim sistemi komutlarının klasörlerin içeriğiyle ilgilendiğini ve bir klasörün alt klasörleri ve belgeleri varsa, talimatın yine de bu belgelerle (tekrarlı olarak) çalıştığı gerçeğini ifade eder. Alt dizinin kendi dosya ve klasörleri (örneğin, büyük klasörler), vb. olması mümkün olabilir. Belirtilen klasörün kenarına getirmeden önce her bir klasörü tekrar tekrar geçmek için farklı Linux talimatları kullanacaksınız. Bu seviyede, Linux talimatları ağacın bir çıkışına geri döner ve mevcut tüm alt klasörler için işlemi tekrarlar. Bu öğreticide, dizinleri özyinelemeli olarak listelemenin tüm yöntemlerini öğreneceksiniz.

Basit Liste Dizinlerine Örnekler

Her şeyden önce, basit liste komutunu kullanarak Linux sisteminizdeki tüm dizinleri nasıl listeleyeceğinizi bilmelisiniz. Komut satırı terminalini açın ve yalnızca dizinleri listelemek için aşağıdaki ls komutunu deneyin. Yalnızca dizinleri değil, bunların içinde bulunan toplam alt klasör ve dosya sayısını da listeleyecektir. Çıktı, sahiplerine, gruplarına, okuma-yazma ayrıcalıklarına ve klasörlerin oluşturulma tarihine ilişkin bilgileri içeren klasörleri gösterir.







$ ls -l



Linux sisteminizdeki tüm dizinleri ve dosyaları listelemek için list komutunda basit -l yerine -la kullanmanız gerekir. Bu nedenle, bunu yapmak için güncellenmiş komutu yürütün. Çıktı, tüm dosya ve klasörleri ek bilgileriyle birlikte gösterir.



$ ls -la





Dizinleri ek bilgi olmadan basitçe listelemek için aşağıdaki komutu ve ardından -d bayrağını deneyin.

$ ls –d * /



Klasörleri ek bilgileriyle birlikte listelemek için aynı komutu küçük değişikliklerle de kullanabilirsiniz. Bu komutun içine -l bayrağını aşağıdaki gibi eklemeniz yeterlidir:

$ ls –l –d * /

Yalnızca belirli ana dizindeki toplam dosya sayısını kontrol etmek için, kabukta aşağıda sunulan komutu deneyin. Linux işletim sisteminizdeki toplam dosya sayısını alacaksınız.

$ l –l | egrep –v '^ d'

Dizinleri Özyinelemeli Listeleme Örneği

Linux Sistemlerinde, dizinleri yinelemeli olarak listelemek için kullanılabilecek farklı türde yinelemeli komutlar vardır. Her birini ayrı ayrı anlamak için, Linux dizininizde Documents adlı 5 dosyanız olduğunu varsayalım.

-lR Bayrağı Kullanarak Özyinelemeli Listeleme

Linux sisteminizin tüm dizinlerini özyinelemeli olarak listelemek için sorgunuzda -lR bayrağını kullanmak, bunu yapmanın ilk yöntemidir. Aşağıdaki liste komutunun yürütülmesi üzerine, çıktıda gösterildiği gibi, tüm klasörleri ve alt klasörlerini bonus ayrıntılarıyla birlikte listeleyecektir.

$ ls -lR

Linux sisteminizin belirli bir klasör veya dizinindeki tüm dosyaları veya klasörleri yinelemeli olarak listeleyelim. Bu amaçla, özyinelemeli olarak listelemek için belirli dizinin konum yolunu ekleyin. Aşağıda güncellenen komutu kullanarak ana dizinde bulunan Documents dizininin tüm dosya ve klasörlerini yinelemeli olarak listelemek istiyoruz. Çıktı, Belgeler klasöründeki tüm dosya ve klasörleri ek bilgileriyle birlikte görüntüler.

$ ls –lR / ana sayfa / aqsayasin / Belgeler /

Find Komutunu Kullanarak Özyinelemeli Listeleme

Tüm Linux sistemlerinin, örneğin macOS, Unix benzeri işletim sisteminin, dizinleri listelemek için -R kullanma seçeneğine sahip olmadığını açıkça belirtin. Bu durumda ihtiyaçlarımızı karşılayacak başka komutlar da vardır, bunlar bul ve yazdır komutudur. Bu komutta, -ls komutunu kullanmanın kaldıracı ile birlikte bir klasöre yol vereceğiz. Komutta -ls kullanıldığında, bu, belirli bir dizinin yerleşik dosya ve klasörleriyle ilgili ek bilgileri de göstereceği anlamına gelir. Documents dizininin tüm dosya ve klasörlerini tekrar tekrar listelemek için kabukta aşağıda belirtilen komutu deneyin.

$ find /home/aqsayasin/Belgeler/ -print -ls

Şimdi, aynı talimatı küçük bir değişiklikle kabukta denemelisiniz. Dosyalarla ilgili ek bilgileri göstermeyi durdurmak için bu komutta -ls bayrağını kullanmaktan kaçınacağız. Kabukta aşağıda listelenen sorguyu yürütün ve görüntülenen çıktıya sahip olacaksınız.

$ bul /home/aqsayasin/Belgeler/ -yazdır

-du Komutunu Kullanarak Özyinelemeli Listeleme

Dosyaları veya dizinleri başka bir yeni yöntemle yinelemeli olarak listelemek için başka bir örneğe bakalım. Bu sefer amacımızı gerçekleştirmek için -du komutunu kullanacağız. Bu komut, içinde -a bayrağını içerir. Bayraklarla birlikte dizin konumunu da belirtmeliyiz. Documents dizininin tüm klasörlerini veya dosyalarını tekrar tekrar listelemek için terminal kabuğunda aşağıdaki talimatı uygulayalım. Çıktı, aşağıda gösterildiği gibi bunun için 5 kaydı gösterir. Bu komutun her dosyada bulunan bit sayısını da gösterdiğini görebilirsiniz.

$ du –a / ana sayfa / aqsayasin / Belgeler /

Ağaç Komutunu Kullanarak Özyinelemeli Listeleme

Son olarak, dosyaları veya klasörleri yinelemeli olarak listelemek için çok basit ve kullanımı kolay bir ağaç komut yöntemimiz var. Şimdiye kadar bu komutta herhangi bir bayrak kullanmayacağız. Anahtar kelime ağacıyla birlikte dizin konumunu belirtmeniz gerekir. Aşağıda listelenen komutu kullanarak bir örnek verelim. Çıktı, Documents dizininin ağaç dallı tip çıktısını gösterir. Çıktıda 0 dizin ve 5 dosya gösterir.

$ ağaç /ana sayfa/aqsayasin/Belgeler/

Aynı ağaç komutunu farklı bir konumla deneyelim. Bu sefer aqsayasin kullanıcısının 'Home' dizininin klasörlerini yinelemeli olarak listeliyoruz. Çıktı, toplam 14 farklı klasöre, alt klasöre ve 5 dosyaya sahip Home klasörünün dallarını gösterir.

$ ağaç /ev/aqsayasin/

Çözüm

Dizinleri ve dosyaları yinelemeli olarak listelemek için tüm özyinelemeli yöntemleri denedik, örneğin -lR bayrağı, bul ve yazdır, du ve ağaç komutu