GNU/Linux >> Tutoriales Linux >  >> Linux

¿Hacer que Ls distinga los scripts de los binarios en la salida?

¿Es posible hacer ls distinguir los scripts ejecutables de los binarios compilados reales?

Los permisos suelen ser los mismos (+x ), y con ls -F obtiene un sufijo de asterisco (* ) para ambos, por lo que es difícil distinguirlos. Tengo un script para configurar los colores de ls , pero depende de que el archivo sea ejecutable o no, por lo que se muestran igual:

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

No quiero depender de la extensión ya que muchos de estos archivos no la tienen.

Quiero esto para que cuando vea un mensaje de error extraño y piense:"¿Qué código causó eso?", Sé si es seguro o no cat el archivo.

Si no hay una solución estándar, ¿qué hay de analizar la salida de file? , en una función común, e insertando alguna marca distintiva? ¿O sería demasiado lento para ls? ?

Respuesta aceptada:

Debe mirar el contenido de un archivo para distinguir entre binarios y scripts. ls no hará esto, solo mira los nombres de los archivos y los metadatos (tipo, permiso, etc.).

Aquí hay un analizador crudo para file que colorea scripts y binarios de manera diferente. Actúa como ls -d; agregar metadatos requeriría un trabajo de parcheo que requiere un enfoque más directo (por ejemplo, en Perl o Python); use lsx somedir/* para listar el contenido de un directorio. Se supone que los nombres de los archivos no contienen líneas nuevas ni dos puntos (puede cambiar el : separador de alguna otra cadena con -F opción para file ).

lsx () { archivo -iN -- "[email protected]" | while IFS=leer -r línea; hacer nombre=${linea%%:*}; type=${line#*:} color=0 case $type in application/x-ejecutable*) color='32';; texto/x-shellscript*) color='01;32';; aplicación/*zip*) color='31';; esac printf'
Linux
  1. ¿Cómo hacer que el archivo sea disperso?

  2. ¿Cómo crear un archivo en Linux desde la ventana de terminal?

  3. Crear un PEM a partir de un archivo PPK

  4. ¿En qué se diferencia install -c de cp?

  5. ¿Cómo se hace una lista/archivo para instalar pacman?

Bash:escribir en archivo

Cómo hacer un archivo ejecutable en Linux

¿Colorear la salida de los sensores?

Guardar la salida de un comando desde la terminal de Debian a un archivo

Capture la salida de nethogs en el archivo de registro

¿Cómo eliminar cualquier cadena de un archivo a través de scripts de shell?