Die Frage bezieht sich auf Shell-Scripting in bash
.
Wie kann man mit einem Skript überprüfen, welche Dateien im aktuellen Verzeichnis Softlinks sind?
Falls ich den falschen Begriff verwendet habe, wenn ich Softlinks sage , beziehe ich mich auf Dateien, die mit erstellt wurden ln -s
.
Das einzige, woran ich denken konnte, ist, ls -la
als Ausdruck zu bewerten und seine Ergebnisse zu analysieren, aber dies ist offensichtlich nicht die beste Lösung.
bash
symbolic-link
ls
shell-script
ln
bguiz
quelle
quelle
Antworten:
Siehe 'BEDINGTE AUSDRÜCKE' in
man bash
- in diesem Fall möchten Sie-h
:quelle
test -h
ist was ich wollte!Möglicherweise benötigen Sie kein Skript. So zeigen Sie symbolische Links nur im aktuellen Ordner an, ohne in einen untergeordneten Ordner zurückzukehren:
Oder verwenden Sie eine der folgenden Informationen, um weitere Informationen zu erhalten:
Um festzustellen, ob eine Datei eine symbolische Verknüpfung ist, kann eine verwendet werden
readlink
, die nichts ausgibt, wenn es sich nicht um eine symbolische Verknüpfung handelt. Das folgende Beispiel ist nicht sehr nützlich, zeigt jedoch, wiereadlink
normale Dateien und Ordner ignoriert werden. Verwenden Sie eine der folgenden Optionen:Beachten Sie, dass die oben genannten
-exec ... +
undxargs ...
sind viel schneller als-exec ... \;
. Mögen:quelle
xargs
ist viel schneller auf meinem Mac; siehe meine Bearbeitung. Aber ich lernte etwas Neues: es gibt auch+
statt\;
(Obwohl einige behaupten , dass dies hat / hatte Probleme mitgrep
.)