GNU/Linux >> Belajar Linux >  >> Linux

Menemukan file yang dapat dieksekusi menggunakan ls dan grep

Jika Anda benar-benar harus menggunakan ls dan grep, ini berfungsi:

ls -Fla | grep '^\S*x\S*'

Itu cocok dengan baris di mana kata pertama (non-spasi putih) berisi setidaknya satu 'x'.

Temukan adalah alat yang sempurna untuk ini. Ini menemukan semua file (-type f) yang dapat dieksekusi:

find . -type f -executable

Jika Anda tidak ingin daftar semua executable secara rekursif, gunakan maxdepth:

find . -maxdepth 1 -type f -executable

Apakah Anda perlu menggunakan ls? Anda dapat menggunakan find untuk melakukan hal yang sama:

find . -maxdepth 1 -perm -111 -type f

akan mengembalikan semua file yang dapat dieksekusi di direktori saat ini. Hapus flag -maxdepth untuk menjelajahi semua direktori turunan.

Anda dapat mencoba kengerian ini tetapi mungkin cocok dengan file yang berisi string yang terlihat seperti izin.

ls -lsa | grep -E "[d\-](([rw\-]{2})x){1,3}"

Mungkin dengan test -x?

for f in $(\ls) ; do test -x $f && echo $f ; done

\ on ls akan mem-bypass alias shell.


for i in `ls -l | awk '{ if ( $1 ~ /x/ ) {print $NF}}'`; do echo `pwd`/$i; done

Ini memberikan jalur absolut ke executable.


Linux
  1. Bagaimana Cara Mengganti Nama Banyak File Menggunakan Find?

  2. Menemukan Item Terakhir Dalam Baris Menggunakan Grep?

  3. Gunakan grep untuk menemukan konten dalam file dan memindahkannya jika cocok

  1. Menggunakan grep dan sed untuk mencari dan mengganti string

  2. temukan dan hapus file dengan ruang menggunakan perintah find di Linux

  3. Menemukan file yang dapat dibaca manusia di unix

  1. Bagaimana Menemukan Banyak String Dalam File??

  2. Menghapus file dengan rm menggunakan find dan xargs

  3. Menemukan dan menghapus file dengan tanggal tertentu