Hay un comando ldisponible en mi máquina que parece no hacer nada. which lTampoco produce salida. ¿Es este un comando real y realmente hace algo?
les un alias para ls -CF, que se comporta de manera diferente a la simplels .
-C-Crealiza lsla salida de impresión en forma de columna. Cuando stdout es un terminal (en lugar de ser redirigido a un archivo o dispositivo no terminal, o conectado a otro comando), -Cestá implícito. Entonces correr ls -Ces lo mismo que correr ls. Pero son no equivalentes cuando lsse redirige o hilo. Por ejemplo:
ek@Kip:~/firefox$ ls
application.ini libfreebl3.chk libxpcom.so
blocklist.xml libfreebl3.so libxul.so
chrome libmozalloc.so mozilla-xremote-client
chrome.manifest libmozsqlite3.so omni.ja
components libnspr4.so platform.ini
crashreporter libnss3.so plugin-container
...
ek@Kip:~/firefox$ ls | less
application.ini
blocklist.xml
chrome
chrome.manifest
components
crashreporter
...
Por el contrario, ls -C(o -l) sale en forma de columna independientemente de qué tipo de dispositivo stdoutsea. ls -C | lessse ve como la salida superior (pero paginada por less, por supuesto).
-FLa principal diferencia visible entre lsy lse debe a la -Fbandera, que causals que se agreguen sufijos simbólicos (llamados indicadores) a las entradas que muestra. Estos indicadores identifican qué tipo de archivo o directorio son.
Compare esto con la salida del primer lscomando anterior:
ek@Kip:~/firefox$ ls -F
application.ini libfreebl3.chk libxpcom.so*
blocklist.xml libfreebl3.so* libxul.so*
chrome/ libmozalloc.so* mozilla-xremote-client*
chrome.manifest libmozsqlite3.so* omni.ja
components/ libnspr4.so* platform.ini
crashreporter* libnss3.so* plugin-container*
...
Aquí:
/ significa que la entrada es un directorio.*significa que la entrada es un archivo normal y es ejecutable (es decir, tiene permisos ejecutables ).Hay varios otros indicadores:
@significa que la entrada es un enlace simbólico (ver también man symlink).|significa que la entrada es un dispositivo FIFO (recuerde, muchos recursos en sistemas operativos tipo Unix están representados por entradas del sistema de archivos ).=significa que la entrada es un zócalo .>significa que la entrada es una puerta .La --classifybandera y --indicator-style=classifyson equivalentes a -F.
Fuente: manual de GNU Coreutils , Sección 10.1.5 Formato de salida general
l( ls -CF) es similar pero no igual que ls.También es bueno tener en cuenta:
Esto se usa comúnmente para especificar opciones que se consideran ampliamente muy útiles e inofensivas, como la coloración automática (donde el color se aplica cuando stdout se redirige o es un terminal, por lo que los códigos de escape que especifican los colores están prácticamente garantizados para no ser malinterpretados).
lses en sí mismo un alias.ek@Kip:/$ alias ls
alias ls='ls --color=auto'
Entonces, ¿qué comando realmente se ejecuta cuando ejecutas l? Éste:
/bin/ls --color=auto -CF
bash) resuelve comandos que no contienen /a la primera coincidencia que aparece PATH, que en Ubuntu lses /bin/ls.Entonces lresuelve a lo ls -CFque resuelve ls --color=auto -CF.
Estos alias existen porque están configurados de esa manera de manera predeterminada, pero cada usuario puede cambiar sus alias. Ver man alias, Capítulo 25 y Apéndice H en la Guía avanzada Bash-Scripting, y cómo Ahorre mis entradas "alias" para siempre .
Relacionado: ¿Qué significan los diferentes colores en ls?
En realidad ambos lsy lson iguales
raja@badfox:~/Pictures$ l
des.png
Screenshot from 2012-09-22 19:37:03.png
Screenshot from 2012-09-22 19:37:11.png
Screenshot from 2012-09-22 19:37:12.png
Untitled.png
raja@badfox:~/Pictures$ ls
des.png
Screenshot from 2012-09-22 19:37:03.png
Screenshot from 2012-09-22 19:37:11.png
Screenshot from 2012-09-22 19:37:12.png
Untitled.png
por qué significa que hay un alias de sistema incorporado que causa esto. si quieres ver, abre tu terminal y escribe, aliasentonces obtendrás una salida como esta
raja@badfox:~/Pictures$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias lock='gnome-screensaver-command -l'
alias ls='ls --color=auto'
alias sms='php .sms.php'
raja@badfox:~/Pictures$
ly la llanuralsson no la misma - que sólo pasó a producir la misma salida para esos archivos en particular, ya que ninguno fue directorios, enlaces simbólicos, ejecutable, o nodos de dispositivos (y la salida estándar era un terminal).alias l='ls -CF'así que no es lo mismo. Además, si desea obtener una salida más sucinta, puede ejecutaralias l.En caso de duda
type l:(ver también ¿Qué hace el comando la )
fuente