Frage

Grundsätzlich möchte ich Folgendes tun:

ls -l[+someflags]

(oder mit anderen Mitteln), dass nur Dateien angezeigt werden, die symbolische links

so die Ausgabe Aussehen würde

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

etc.

Für Beispiel,

zeigt nur die Verzeichnisse habe ich einen alias:

alias  lsd  'ls -l | grep ^d'

Ich Frage mich, wie der Anzeige von nur versteckte Dateien oder nur die versteckten Verzeichnisse?

Ich habe die folgende Lösung, aber es nicht display die Ausgabe in der Farbe :(

ls -ltra | grep '\->'
War es hilfreich?

Lösung

Finden Sie alle symbolischen Links in einem Verzeichnis:

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

Für die Kotierung von versteckten Dateien:

ls -ald .*

Andere Tipps

ls -l | grep lrw 

zeigt nur Symlinks (Dateien und Verzeichnisse). Nicht sicher, wie sie bunt zu bekommen, though.

ls -lad .* 

zeigt nur versteckte Dateien / Verzeichnisse

ls -l | grep drw

zeigt nur Verzeichnisse.

Für nur "versteckt" Ordner - Punkt Ordner versuchen:

ls -l .**

Ja, die zwei Sternchen sind notwendig, sonst werden Sie auch bekommen. und .. in den Ergebnissen.

Für Symlinks, na ja, versuchen, das Symlinks Programm:

symlinks -v .

(zeigt alle Symlinks im aktuellen Verzeichnis)

So zeigen Sie einfach die Symlinks und was sie verlinken auf:

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

Zur Begrenzung nur diese DIR

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

Beispiel Ausgang (nach ln -s / usr / bin MOO):

./moo -> /usr/bin

Sie waren fast da mit grep-Lösung; konzentrieren wir uns auf immer Sie COLOR wieder.

Versuchen Sie folgendes:

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

Die Verbesserung ein wenig auf die akzeptierte Antwort von @ChristopheD (coudnt Kommentar zu der akzeptierten Antwort, da ich nicht genug Ruf)

Ich verwenden Sie einen alias

findsymlinks <path> <depth> 

wo der alias ist

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

Versuchen Typ Flagdatei und loszuwerden der Anfügen @

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

Für (t) csh :

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

(Dies ist einfach pbr Antwort aber mit dem Bindestrich entkommen.)

Mac OSX

Auf OSX, ls funktioniert anders, so fügen Sie diese zu Ihrer ~/.cshrc-Datei:

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

Und dann rufen Sie:

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

Für bash:
Dies bietet eine schöne Ausgabe.

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

Das funktioniert gut für mich aber, wenn Sie / Dateisystem root Benutzer werden wird, müssen Sie die proc-Verzeichnis wegzulassen

Verbrauch: foo $ path

Verwendet Strompfad, wenn keine angegeben.

#!/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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top