GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie konvertiere ich einen Symlink in eine normale Datei?

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.


Linux
  1. Wie konvertiere ich eine Sounddatei in Opus?

  2. So mounten oder symbolisieren Sie eine einzelne Datei in einem Docker-Container

  3. So konvertieren Sie Ext-Dateisysteme in Btrfs

  4. Wie konvertiert man ISO8859-15 in UTF8?

  5. Wie konvertiere ich tar.bz2 in tar.gz?

So verschieben Sie eine Datei unter Linux

So verknüpfen Sie eine Datei unter Linux per Symlink

So konvertieren Sie Raw-Kamerabilder in JPEG in Linux

So konvertieren Sie eine Windows-Datei in eine UNIX-Datei

So konvertieren Sie eine .pem-Datei in eine .ppk-Datei unter Windows und Linux

So konvertieren Sie den privaten Schlüssel von PuTTY (.ppk) in einen SSH-Schlüssel