GNU/Linux >> Linux Esercitazione >  >> Linux

Trovare file eseguibili usando ls e grep

Se devi assolutamente usare ls e grep, funziona:

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

Corrisponde alle righe in cui la prima parola (non spazi bianchi) contiene almeno una 'x'.

Find è lo strumento perfetto per questo. Questo trova tutti i file (-tipo f) che sono eseguibili:

find . -type f -executable

Se non vuoi che elenchi in modo ricorsivo tutti gli eseguibili, usa maxdepth:

find . -maxdepth 1 -type f -executable

Devi usare ls? Puoi usare find per fare lo stesso:

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

restituirà tutti i file eseguibili nella directory corrente. Rimuovi il flag -maxdepth per attraversare tutte le directory figlie.

Potresti provare questa terribilità ma potrebbe corrispondere a file che contengono stringhe che sembrano autorizzazioni.

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

Forse con test -x?

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

\on ls ignorerà gli alias della shell.


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

Questo fornisce percorsi assoluti agli eseguibili.


Linux
  1. Utilizzo di sed per trovare e sostituire file di testo in Linux

  2. Trovare l'ultimo elemento di una riga usando Grep?

  3. Trova e copia i file

  4. Rimozione di file con rm utilizzando find e xargs

  5. Usare un indice per rendere grep più veloce?

Come trovare una stringa o una parola specifica in file e directory

Trova comando in Linux (Trova file e directory)

Grep Command in Linux (Trova testo nei file)

Trova facilmente file e directory su Linux

Trova testo nei file su Linux usando grep

tcpdump – ruota i file catturati usando -G, -W e -C