Me di cuenta de que ls -l
no solo cambia el formato de la salida, sino también cómo se manejan los enlaces simbólicos del directorio:
> ls /rmn
biweekly.sh daily.sh logs ...
> ls -l /rmn
lrwxrwxrwx 1 root root 18 Feb 11 2011 /rmn -> /root/maintenance/
Me gustaría obtener una lista detallada de lo que hay /rmn
, no información sobre el /rmn
enlace simbólico.
Una solución que se me ocurre es crear una función de shell que haga algo como esto:
cd /rmn
ls -l
cd -
Pero eso parece demasiado hacky, especialmente porque arruina el próximo uso de cd -
. ¿Hay una mejor manera?
(Estoy en CentOS 2.6.9)
Respuestas:
Vea si su ls tiene las opciones:
Si eso no ayuda, puede hacer que su macro funcione sin perder el tiempo
cd -
haciendo:que se ejecuta en una subshell.
fuente
-H
, y eso hizo el truco. ¡Gracias!--dereference-command-line-symlink-to-dir
tuviera una forma corta.No entiendo por qué el pensamiento sobre este simple problema tiene que ser tan complejo, pero quizás acabo de responder la pregunta de manera incorrecta. De todos modos: cuando necesitaba una funcionalidad similar, usaba:
Eso hizo el truco en mi caso. Desde la
ls
página del manual:Por ejemplo, me hice un
/media/stick
acceso directo para acceder a los datos en mi memoria USB.ls -l /media/stick
mostrará el enlace real, mientrasls -lL /media/stick
que mostrará el contenido en la memoria USB.Después de una investigación más profunda sobre la diferencia entre el funcionamiento interno de
-H
y-L
, finalmente encontré un excelente artículo sobre este tema en el blog Shallow Thoughts (¡incluso con algunos trucos de script de shell para su placer!)Esto señala las diferencias sutiles entre las dos opciones (¡mucho mejor que el manual original!) De la siguiente manera:
-H
- solo desreferencia esos enlaces mencionados explícitamente en la línea de comando-L
- enlaces dereference incluso si están no mencionan en la línea de comandos(Cuando estos dos se usan con tareas cotidianas simples , no debería haber diferencia en el resultado en general).
Además: si prefieres recordar la forma larga (
--option
), lo más probable es que sea menos engorroso de memorizar--dereference
que el monstruo excesivamente largo de--dereference-command-line-symlink-to-dir
.fuente
lo haría o
Sin embargo, el comportamiento no debe ser diferente con y sin
-l
. ¿Tienes un alias parals
?fuente
ls
Las banderas están locas.-l
establece el-H
valor predeterminado en desactivado, como lo hace-F
. Ver coreutils - Qué archivos están listados .ls='ls -F'
alias en realidad.