Temukan nama file yang dapat dieksekusi tanpa path


9

Saya memiliki folder dengan banyak executable, dan saya ingin menghilangkan path di hasil perintah find. perintah ini memperlihatkan file yang ingin saya lihat, tetapi juga mencantumkan path; Saya hanya ingin nama file.

find /opt/g09 -maxdepth 1 -executable

bagaimana saya bisa mendapatkan hasil find untuk hanya menampilkan nama file, dan bukan path lengkap?

Jawaban:


10

Atau gunakan:

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

menambahkan -type fbendera juga berfungsi di sini.

Dari findmanual:

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

Jawaban ini hanya mengharuskan Anda memiliki GNU findsedangkan yang lain memerlukan program lain untuk memanipulasi hasil Anda.


-type f Itulah yang saya coba pikirkan! Terima kasih coding man!
j0h

@ j0h bukan masalah!
nixpower

6

Gunakan basename:

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

Dari man basename:

Print NAME with any leading directory components removed.

Anda juga mencoba findsegalanya, untuk membatasi pencarian Anda hanya pada file, gunakan:

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

3

Solusi yang paling jelas bagi saya adalah

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

Karena Anda memulai subkulit Anda tetap di direktori yang sama. Keuntungan dari metode ini adalah Anda tidak perlu melakukan parsing. Kerugiannya adalah Anda memulai subkulit (Anda tidak akan merasakannya).


1
Itu ide yang cerdas.
AB

1

Dengan awk, memisahkan jalan dengan pembatas /, cetak bagian terakhir ( $NF):

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

Di mana bro versi python Anda? ;)
Sergiy Kolodyazhnyy

@Serg haha, aku harus mengikat jariku :)
Jacob Vlijm

1

Menggunakan kombinasi dari finddanperl

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

Cara yang bagus untuk mempelajari beberapa Perl: P
nixpower
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.