
Ich möchte die symbolischen Links folgendermaßen aufheben:
unlink *
Allerdings heißt esunlink: extra operand
Ich möchte nur die Linkdatei löschen und die Originaldatei behalten.
Antwort1
Mit dem „*“ versuchen Sie, die Verknüpfung aller Dateien und Verzeichnisse unter Ihrem aktuellen Standort aufzuheben.
„unlink“ kann keine Dateien oder Verzeichnisse verarbeiten, sondern nur Links. Verwenden Sie den Befehl „find“, um alle Links zu finden und deren Verknüpfung wie folgt aufzuheben:
find . -type l -exec unlink {} \;
Antwort2
Ich würde vermeiden, andere Prozesse mit zu erzeugen find … -exec …
. Wenn Sie unlink
oder rm
die Ergebnisse von benötigen find
, verwenden Sie dessen-delete
Option stattdessen.
find . -maxdepth 1 -type l -delete
Dieser Befehl findet alle symbolischen Links ( -type l
) im aktuellen Verzeichnis (nicht in Unterverzeichnissen; Ihr Verzeichnis *
wechselt nicht in Unterverzeichnisse, daher nehme ich an, dass dies Ihr Wunsch ist) und löscht sie. Das Standardverhalten besteht darin, symbolischen Links nicht zu folgen, sodass die Originaldateien nicht betroffen sind.
Antwort3
Dieser Befehl findet und entfernt alle Symlinks im aktuellen Ordner, rekursiert nicht in Unterordner und ignoriert Dotfiles
find . -maxdepth 1 -type l ! -name '.*' -delete