Devo scrivere uno script che trovi tutti i file eseguibili in una directory. Così ho provato diversi modi per implementarlo e funzionano davvero. Ma mi chiedo se c'è un modo migliore per farlo.Trovare file eseguibili usando ls e grep
Quindi questo è stato il mio primo approccio:
ls -Fla | grep \*$
Questo funziona bene, perché la bandiera -F fa il lavoro per me e aggiunge a ciascun file eseguibile un asterisco, ma diciamo che non mi piace il segno di asterisco
Quindi questo è stato il secondo approccio:
ls -la | grep -E ^-.{2}x
Questo funziona troppo fine, voglio un trattino come primo carattere, quindi non mi interessa nei prossimi due personaggi e il quarto carattere deve essere una x .
Ma c'è un po 'di ambiguità nei requisiti, perché non so se devo controllare per utente, gruppo o altro permesso eseguibile. Quindi funzionerebbe:
ls -la | grep -E ^-.{2}x\|^-.{5}x\|^-.{8}x
Quindi sto testando il quarto, il settimo e il decimo carattere come x.
Ora la mia vera domanda, c'è una soluzione migliore usando ls e grep con regex dire:
voglio grep solo i file, avendo almeno una x nei primi dieci caratteri di una linea di prodotti da ls -la
Grazie per aver effettivamente trovato una soluzione prima di chiedere aiuto. Visto che hai avuto l'esigenza di usare ls e grep, sembra una domanda per i compiti a casa e vedo persone che chiedono risposte ai compiti senza alcun tentativo (o almeno nessuna descrizione dei loro tentativi). So che sono trascorsi quasi 4 anni, ma anche così, buon lavoro. –