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.