Yürütülebilir dosya adlarını yol olmadan bulma


9

Birçok yürütülebilir dosya ile bir klasör var ve find komutunun sonuçlarında yolu atlamak istiyorum. bu komut görmek istediğim dosyaları gösterir, ancak yolu da listeler; Sadece dosya ismini istiyorum.

find /opt/g09 -maxdepth 1 -executable

tam çıktıyı değil, yalnızca dosya adlarını göstermek için find çıktısını nasıl alabilirim?

Yanıtlar:


10

Veya kullan:

find /opt/g09 -maxdepth 1 -executable -printf "%f\n"

-type fBurada bayrak eklemek de işe yarıyor.

Gönderen findmanuel:

 %f     File's name with any leading directories removed (only the last element).

Bu yanıt yalnızca GNU'nuz olmasını gerektirirken, finddiğerleri sonuçlarınızı değiştirmek için başka programlara ihtiyaç duyar.


-tip f Düşünmeye çalıştığım şey bu! Kodlama teşekkürler adamım!
j0h

@ j0h sorun değil!
nixpower

6

Kullanım basename:

find /opt/g09 -maxdepth 1 -executable -exec basename {} \;

Gönderen man basename:

Print NAME with any leading directory components removed.

Ayrıca, findher şeyi deniyorsunuz , aramanızı yalnızca dosyalarla sınırlamak için şunu kullanın:

find /opt/g09 -type f -maxdepth 1 -executable -exec basename {} \;

3

Benim için en belirgin çözüm

(cd /opt/g09; find -maxdepth 1 -executable)

Bir alt kabuk başlattığınız için aynı dizinde kalırsınız. Bu yöntemin avantajı, ayrıştırmaya gerek olmamasıdır. Dezavantajı, bir alt kabuk başlatmanızdır (bunu hissetmeyeceksiniz).


1
Bu akıllıca bir fikir.
AB

1

İle awk, yolu sınırlayıcıya bölerek /son bölümü ( $NF) yazdırın :

find /opt/g09 -maxdepth 1 -executable | awk -F/ '{print $NF}'

Python versiyonun nerede kardeşim? ;)
Sergiy Kolodyazhnyy

@Serg haha, parmaklarımı bağlamak zorunda kaldım :)
Jacob Vlijm

1

Bir arada kullanılması findveperl

find /opt/g09 -maxdepth 1 -type f -executable | perl -pe 's/.+\/(.*)$/\1/'

Bazı Perl öğrenmek için harika bir yol: P
nixpower
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.