GNU/Linux >> Linux Esercitazione >  >> Linux

Fare in modo che Ls distingua gli script dai binari in output?

È possibile creare ls distinguere gli script eseguibili dagli effettivi binari compilati?

I permessi sono spesso gli stessi (+x ), e con ls -F ottieni un suffisso asterisco (* ) per entrambi, quindi è difficile distinguerli. Ho uno script per impostare i colori di ls , ma si basa sul fatto che il file sia eseguibile o meno, quindi vengono visualizzati allo stesso modo:

BG='01;32'  # green
EX="ex=$BG" # file with execute permission

Non voglio dipendere dall'estensione perché molti di questi file non ce l'hanno.

Voglio questo così quando vedo un messaggio di errore bizzarro e penso:"Quale codice lo ha causato?", So se è sicuro o meno cat il file.

Se non esiste una soluzione standard, che dire dell'analisi dell'output di file , in una funzione comune, e inserendo qualche segno distintivo? O sarebbe troppo lento per ls ?

Risposta accettata:

È necessario esaminare il contenuto di un file per distinguere tra binari e script. ls non lo farà, guarda solo i nomi dei file e i metadati (tipo, autorizzazione, ecc.).

Ecco un parser grezzo per file che colora gli script e i binari in modo diverso. Funziona come ls -d; l'aggiunta di metadati richiederebbe un lavoro di patch-up che richiede un approccio più diretto (ad esempio in Perl o Python); usa lsx somedir/* per elencare il contenuto di una directory. Si presume che i nomi dei file non contengano né newline né due punti (puoi cambiare il : separatore per qualche altra stringa con -F opzione per file ).

lsx () { file -iN -- "[email protetta]" | mentre IFS=leggi -r riga; nome=${riga%%:*}; type=${line#*:} color=0 case $type in application/x-executable*) color='32';; text/x-shellscript*) color='01;32';; applicazione/*zip*) color='31';; esac printf '
Linux
  1. Come eliminare più righe casuali da un file di testo utilizzando Sed?

  2. Reindirizzamento e uscita del tubo?

  3. Rimuovere la ridondanza dalle colonne di output?

  4. Come creare un file .click da un'app installata?

  5. Come creare un file in Linux dalla finestra del terminale?

Bash:Scrivi su file

Come rendere eseguibile un file in Linux

Colora l'output dei sensori?

Salva l'output di un comando dal terminale Debian in un file

creare un file di registro

Come rimuovere qualsiasi stringa da un file tramite script di shell?