tipos shells que korn desarrollo archivo linux shell csh tcsh

linux - shells - Mostrar solo archivos y carpetas que son enlaces simbólicos en tcsh o bash



shell tc (11)

Básicamente quiero hacer lo siguiente:

ls -l[+someflags]

(o por algún otro medio) que solo mostrará archivos que son enlaces simbólicos

por lo que la salida se vería

-rw-r--r-- 1 username grp size date-time filename -> somedir -rw-r--r-- 1 username grp size date-time filename2 -> somsdfsdf

etc.

Por ejemplo,

para mostrar solo directorios tengo un alias:

alias lsd ''ls -l | grep ^d''

Me pregunto cómo mostrar solo los archivos ocultos o solo los directorios ocultos.

Tengo la siguiente solución, sin embargo, no muestra la salida en color :(

ls -ltra | grep ''/->''


Encuentra todos los enlaces simbólicos en un directorio:

ls -l `find /usr/bin -maxdepth 1 -type l -print`

Para el listado de archivos ocultos:

ls -ald .*


Estabas casi allí con tu solución grep; centrémonos en conseguirte COLOR otra vez.

Prueba esto:

ls --color=always -ltra | grep ''->''


Mejorando un poco la respuesta aceptada dada por @ChristopheD (no puedo comentar sobre la respuesta aceptada ya que no tengo suficiente reputación)

Yo uso un alias

findsymlinks <path> <depth>

donde está el alias

alias findsymlinks "find /!:1 -maxdepth /!:2 -type l -print | xargs ls -l --color=auto"


Para mostrar JUSTO los enlaces simbólicos y sus enlaces a:

find -P . -type l -exec echo -n "{} -> " /; -exec readlink {} /;

Limitar a ESTE DIR.

find -P . -maxdepth 1 -type l -exec echo -n "{} -> " /; -exec readlink {} /;

Ejemplo de salida (después de ln -s / usr / bin moo):

./moo -> /usr/bin


Prueba el indicador de tipo de archivo y deshazte de los anexos @

ls -F /home/usr/foo | grep "@" | sed ''s/@//''


Solo para carpetas "ocultas" - carpetas de puntos, intente:

ls -l .**

Sí, los dos asteriscos son necesarios, de lo contrario también obtendrás. y .. en los resultados.

Para enlaces simbólicos, bueno, pruebe el programa de enlaces simbólicos:

symlinks -v .

(Muestra todos los enlaces simbólicos en el directorio actual)


Uso: foo $ ruta

Utiliza la ruta actual si no se especifica.

#!/bin/bash case "$1" in -r) find $2 -type l -print | while IFS= read line ; do ls -l --color=always "$line"; done ;; --help) echo ''Usage: foo [-r] [$PATH]'' echo echo ''-r Recursive'' ;; *) ls --color=always -ltra $1 | grep ''/->'' esac


Para (t) csh :

ls --color=always -ltra | grep ''/->''

(Esto es simplemente la respuesta de pbr pero con el guión escapado).

Mac OS X

En OSX, ls funciona de manera diferente, así que agregue esto a su archivo ~/.cshrc :

setenv CLICOLOR_FORCE 1 # (equivalent of Linux --color=always)

Y luego llamar:

ls -G -ltra | grep ''/->'' # (-G is equivalent of ls --color)


Para el bash:
Esto proporciona una salida agradable.

sl=`find -L /path/to/target -xtype l`; for links in $sl; do ls --color=always -ltra $links; done | sed ''s/^/ /''


echo > linklist.found && $(for i in `find /path/to/dir/ -type l`; do echo `ls -d --color=always $i` `echo " -> "` $(ls -d --color=always `readlink -f $i`) >> linklist.found; echo >> linklist.found; done;) && cat linklist.found | more

Esto funciona bien para mí, sin embargo, si va a buscar / la raíz del sistema de archivos, tendrá que omitir el directorio proc


ls -l | grep lrw

Muestra solo enlaces simbólicos (archivos y directorios). Sin embargo, no estoy seguro de cómo obtener colores.

ls -lad .*

muestra solo archivos / directorios ocultos

ls -l | grep drw

muestra directorios solamente.