2010-11-06 19 views
19

Linux için oldukça yeniyim (bu durumda CentOS). İçinde yaklaşık 2000 dosya bulunan bir klasör var. Komut isteminde, tüm dosyaların adını tek bir txt dosyasına yazacak bir komut yürütmek istiyorum.Bir klasördeki dosya listesini Linux'ta bir txt dosyasına nasıl gönderirim?

Gerekirse, bunu yapmak için gerçek bir program yazabilirim, sadece komut isteminden bunu yapmanın bir yolu olabileceğini düşünüyordum.

+1

dikkatli olun yapabileceğiniz ihtiyaç vardır (o ~/dirs olduğunu varsayalım) olabilir Bununla birlikte, dosya isimlerinin her türlü zor karakter içermesi mümkündür. Örneğin. newline –

cevap

49

sadece

ls > filenames.txt 

(genellikle, "Terminal", ya da "kabuk" veya "Bash" kullanarak bir kabuk başlatın.) Kullanabilir Önce bu klasöre gitmek için cd kullanmanız gerekebilir düzenli dosyaların sadece isimleri hemen bir dizin içinde bulunan varsa veya ls ~/docs > filenames.txt

+1

kısa ve tatlı! –

+0

cool, harika çalışıyor ve gerçekten basit. – alchemical

+0

Neyse ki biraz bash betiği yazmadan önce bunu googled! Mutlak yolu için – JohnAllen

4

find ~/docs -type f -maxdepth 1 > filenames.txt 
+0

gibi bir metin dosyasına kaydedilmesini istediğiniz onların isimleri) ? Tek yönlü olacağını –

+0

@VickyDev grep' 'yoluyla' find' çıkışını filtrelemek için: 'bulmak ~/docs tipi f -maxdepth 1 | grep -v '~ $'> filenames.txt' – usta

+0

@VickyDev bir temizleyici yolu 'find' en' 'ile -name' -not' kullanmaktır:' ~/docs bulmak tipi f -maxdepth 1 -not - isim '* ~'> filenames.txt' – usta

İlgili konular