Yalnızca görüntü dosyalarını nasıl yapabilirim?


24

Ben sadece ls dizinleri göstermeyen bir yol olması gerektiğini düşündüm, ancak man sayfa açık değil


Bundan emin değilim ls, ancak file: komutuyla kolayca yapabilirsiniz file /directory/containing/the/files -maxdepth 1 -not -type d.
Henning Kockerbeck

1
Başka yolu da çıktısını filtrelemek olacaktır lsthrough grepgibi bir şey ls -1F /directory/containing/the/files | grep -vE /$. Fakat ls'in çıktısını ayrıştırmanın zor olabileceğini unutmayın .
Henning Kockerbeck

Yanıtlar:


37
ls -p | grep -v /

Kullanılması ls -panlatıyor lsbir dizin olan girişlere bir çizgi eklemek ve kullanan grep -v /söyler grepsadece çizgiler dönmek için değil bir çizgi içeren.


Bunu kontrol ettim çünkü bu benim en sevdiğim cevabı (hepsini oylarken), ama şimdi sütunlara
koymanın

Üzgünüm, ben bunu ne anlama geldiğini anlamaya çalıştım "Sen tek sütun listesi için 1 anahtarını kullanabilirsiniz" i takdir ediyorum ve örnek / açıklama Sen yaparsan, ben sadece bir anahtar C programlama açısından ne olduğunu biliyorum
thinksinbinary

@sdkks Çıkışı boruya bağladığınızda 1, bu durumda varsayılan olarak tek sütuna geçeceği için anahtara ihtiyacınız yoktur . Eğer anlamı buysa.
thomasrutter

@ thinksinbinary çoklu sütunu nasıl yapacağınızdan emin değil, ancak kendi ayrı sorunuzu arayabilir veya sorabilirsiniz;
thomasrutter

7

Bunu deneyebilirsiniz:

find . -maxdepth 1 -not -type d

Ve bunu özel bir takma adla eşleyin.

Ancak bu lskomutu gerçekten kullanmaktan çekinmiyorsanız, burada:

ls -p | egrep -v /$


6

Alternatif:

ls -lAh | grep -v '^d'

Bu yöntem içinde listeler.

  • -l Uzun liste formatı
  • -A Neredeyse tümünü görüntüler (gizli dosyaları göster ancak gösterme .ve ..)
  • -h İnsan tarafından okunabilen dosya boyutları

grep yaparken

  • -v Eşleşen kayıtları gösterme
  • Regular expressionfilter ^d- Bunlar d harfi ile başlar (dizin için), yanidrwxrwxr-x <some file details> <foldername>

Her seferinde yazmak istemiyorsanız , bash / shell profiliniz için bir diğer ad oluşturabilirsiniz.


2

@ THinksinbinary'deki yorumunuzda @thomasrutter'ın cevabını, sıralarını ve sütunlarını yazdırabilmek istediğinizi gördüm. Muhtemelen çoktan anladım ya da devam ettin, ama işte burada:

ls -pr | grep -v / | column
  • -p eğik çizgiyi ('/') dizin adlarına ekler
  • -r çıktı sırasını tersine çevirir
  • -v, grep'in dizinler dışındaki her şeyi yazdırmak için ters bir arama yapmasını sağlar ( burada -p'nin koyduğu '/' işareti olmayan her şey )
  • " sütun bunu sütunlara koyar" - Kaptan

1
Ubuntu forumunda insanların uzun bir süre sonra hala yazılar hakkında yorum yazıp okumalarını çok güzel buluyorum. Montaj ve işletim sistemlerini öğrenmek için linux'a geri dönmek istiyorum çünkü pencerelerde bunu yapmak çok daha zor. Teşekkürler!
inbinaryary

0
ls -F | grep -v /

Üstü komut dosyaları görüntüler, ancak sembolik bağlantılar, borular vb. İçerir. Bunları da ortadan kaldırmak istiyorsanız, aşağıda belirtilen bayraklardan birini kullanabilirsiniz.

ls -Fdosya adlarına semboller ekler. Bu semboller dosyalar hakkında faydalı bilgiler gösterir.

ls -F | grep -Ev '/|@|*|=|>|\|'

Yukarıdaki komut sadece dosyaları gösterir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.