¿Para qué comando es el alias ll?

28

¿Alguien puede decirme para qué comando de terminal es el alias ll? Todo lo que puedo encontrar en línea es que muchas personas dicen que es un alias para ls -lor ls -lao ls -ltr. Pero eso simplemente está mal. El resultado se ve diferente. ¿Hay alguna forma de localizar lly ver su sintaxis?

Sócrates
fuente

Respuestas:

76

Puede usar los comandos aliaso typepara verificar qué significa un alias específico:

$ alias ll
alias ll='ls -alF'

$ type ll
ll is aliased to `ls -alF'

Sin embargo, tenga en cuenta que los alias pueden usar otros alias, por lo que es posible llque deba verificarlo de forma recursiva, por ejemplo, en el caso de , también debe verificar el lscomando que llama:

$ alias ls
alias ls='ls --color=auto'

$ type ls
ls is aliased to `ls --color=auto'

Entonces en llrealidad significa:

ls --color=auto -alF
Byte Commander
fuente
10
Tenga en cuenta que en el caso general, un comando podría tener varias definiciones simultáneas. type -a commandnamerevelará todo: le dirá si el comando es uno o más de un alias, función, incorporado o uno o más archivos ejecutables en su RUTA, en ese orden de precedencia. Esto ayuda a comprender por qué, por ejemplo, desajustar un comando no lo devuelve del todo al comportamiento esperado.
Pausado hasta nuevo aviso.
Me gustaría recomendar alias ll='ls -lh'. Puede ejecutar ls -lsi desea tamaños en bytes en lugar de B / kiB / MiB / GiB amigables para los humanos.
Peter Cordes
13

lles un alias definido en su ~/.bashrc, siempre que no lo haya cambiado es ls -alF:

$ grep ll= <~/.bashrc
alias ll='ls -alF'

Estas tres opciones son:

  • -a, --todos - no ignore las entradas que comienzan con.
  • -l: usa un formato de listado largo
  • -F, --clasificar - agregar indicador (uno de * / => @ |) a las entradas

Como

$ grep ls= <~/.bashrc
alias ls='ls --color=auto'

muestra, en lssí mismo es de nuevo un alias para ls --color=auto:

Con --color=auto, lsemite códigos de color solo cuando la salida estándar está conectada a un terminal. La LS_COLORSvariable de entorno puede cambiar la configuración. Use el dircolors comando para configurarlo.

postre
fuente
No necesariamente .bashrc. Si utiliza un shell diferente, se definirá en el archivo .rc para ese shell: cshrc, .tchshc, etc.
jamesqf
@jamesqf Creo que alguien que usa un shell diferente también sabe qué alias están predefinidos en él: tomé la pregunta sobre la configuración predeterminada de Ubuntu, dónde bashestá el shell predeterminado para los usuarios y el alias llse define en el /etc/skel/.bashrcque se copia en cada nuevo directorio de inicio del usuario. Por supuesto, puede usar cualquier archivo para almacenar sus propios alias; todo lo que necesita es obtenerlo.
postre
2
No es necesario redirigir el archivo grep, tomará el nombre del archivo como argumento. Si bien los archivos de inicio grepping lo ayudarán a encontrar dónde se (re) define el alias (tenga en cuenta que podría estar en un archivo /etc, sabiendo que le ahorrará rascarse la cabeza si lo elimina del archivo de inicio del usuario y aún persiste o incluso cambia su comportamiento), si solo quiere saber rápidamente cuál es la definición, el comando alias , como se indica en la respuesta aceptada, hará el trabajo.
Pausado hasta nuevo aviso.
@DennisWilliamson No es necesario dejar bashabrir el archivo, ¡pero es mucho mejor! La última oración en el post de la pregunta dice ¿Hay alguna manera de localizar lly ver su sintaxis? , eso es lo que responde mi respuesta.
postre
3

Puede buscar en su ~ / .bashrc (o en algún archivo donde se encuentran sus alias) o puede escribir algunos de estos comandos en su shell:

command -v ll # "command" is a shell built-in that display information about       
              # the command. Use the built-in "help command" to see the 
              # options.
type -p ll # "type" is another built-in that display information about how the 
           # command would be interpreted
grep -r "alias ll=" ~ # and don't worry about de .file that contains your 
                      # alias. This command search recursively  under  each  
                      # folder of your home. So it's something rude.
find ~ -maxdepth 1 -type f | xargs grep "alias ll" # Just look in 
                      # the files (not folders) in your home folder

Pero, ¿por qué usar find sin el nombre ". *"? Porque puedes poner esto en tu .bashrc

source bash_hacks # where the file bash_hacks, in your home directory can 
                  # contain the alias ll='ls -la etc etc'.

Dado que "ll" es un alias, no es necesario que tenga un solo significado (ll = 'ls -alF --color'), puede alias su "ll" como otro comando y, no sé, "rm" . Creo que es más una convención (producto de usos comunes).

Pero "ll" podría ser un programa almacenado en cualquier carpeta de su RUTA. Por ejemplo, si tiene una carpeta llamada "bin" en su hogar, cree un script "ll" que contenga algo como

#!/bin/bash
ls -lhar

Pero, ¿qué pasa si su RUTA ha sido alterada para agregar otra carpeta que contenga el nuevo comando "ll"? Para obtener información más interesante, puede consultar el siguiente enlace a una pregunta relacionada.

Cuauhtli
fuente
0

No es necesario analizar ~ / .bashrc ni ningún otro script. Puede verificar sus valores actuales de todos los alias escribiendo el aliascomando en la terminal. Traerá todos los alias definidos con sus definiciones a su pantalla.

Serg Stetsuk
fuente
Hola y bienvenidos a askubuntu. ¿Cómo es esta respuesta agregando algo al aceptado?
Bruni