for f in $(find -type l);do cp --remove-destination $(readlink $f) $f;done;
- Symlinks im aktuellen Verzeichnis und den Unterverzeichnissen
find -type l
prüfen - Erhalten Sie den verknüpften Dateipfad
readlink $f
- Symlink entfernen und die Datei
cp --remove-destination $(readlink $f) $f
kopieren
Es gibt keinen einzelnen Befehl, um einen Symlink in eine normale Datei umzuwandeln. Der direkteste Weg ist die Verwendung von readlink
um die Datei zu finden, auf die ein Symlink zeigt, und kopieren Sie diese Datei dann über den Symlink:
cp --remove-destination `readlink bar.pdf` bar.pdf
Natürlich, wenn bar.pdf
tatsächlich eine normale Datei ist, dann wird dies die Datei verstopfen. Eine Überprüfung der Plausibilität wäre daher ratsam.
Nur eine Wiederholung der Antworten anderer, aber Hinzufügen der "Vernunftprüfung", um sicherzustellen, dass der übergebene Link tatsächlich ein symbolischer Link ist:
removelink() {
[ -L "$1" ] && cp --remove-destination "$(readlink "$1")" "$1"
}
Dies bedeutet, dass, wenn die Datei ein symbolischer Link ist, der Kopierbefehl ausgeführt wird.