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

Gibt es irgendwelche Nachteile bei der Verwendung von mount –bind als Ersatz für symbolische Links?

Symlinks haben Einschränkungen in der Funktionsweise wie ls , mv , und cp kann auf ihnen operieren, weil im Gegensatz zu Shell-initiierten Befehlen wie cd , haben diese Funktionen keine Informationen darüber, wie der Benutzer auf das Verzeichnis in Bezug auf den logischen Pfad zugegriffen hat (siehe verwandter Beitrag). Es scheint, als würde man mount --bind verwenden Die Option stattdessen kann dies umgehen und bietet eine erhöhte Funktionalität und Kompatibilität mit Samba und anderen Dateiservern, da das gemountete Verzeichnis dann zwei unabhängige physische Pfade anstelle eines Links hat.

Ich möchte alle meine symbolischen Links durch Verweise mit mount --bind ersetzen Option, aber dies würde bedeuten, über 150 Punkte in fstab zu montieren. Gibt es Leistungsprobleme, die möglicherweise daraus entstehen könnten, oder andere Nachteile, die ich in Betracht ziehen sollte?

Akzeptierte Antwort:

Mit mount --bind , existiert ein Verzeichnisbaum an zwei (oder mehr) Stellen in der Verzeichnishierarchie. Dies kann eine Reihe von Problemen verursachen. Backups und andere Dateikopien werden alle Kopien auswählen. Es wird schwierig anzugeben, dass Sie ein Dateisystem kopieren möchten:Am Ende kopieren Sie die über Bind eingehängten Dateien zweimal. Sucht mit find , grep -r , locate usw. werden alle Kopien durchlaufen und so weiter.

Mit Bindungshalterungen erhalten Sie keine „erhöhte Funktionalität und Kompatibilität“. Sie sehen aus wie jedes andere Verzeichnis, was meistens kein wünschenswertes Verhalten ist. Beispielsweise legt Samba symbolische Links standardmäßig als Verzeichnisse offen; Es gibt nichts zu gewinnen, wenn Sie ein Bind-Mount verwenden. Andererseits können Bind-Mounts nützlich sein, um Verzeichnishierarchien über NFS offenzulegen.

Sie werden keine Leistungsprobleme mit Bind-Mounts haben. Was Sie haben werden, sind Verwaltungskopfschmerzen. Bind-Mounts haben ihre Verwendung, wie zum Beispiel einen Verzeichnisbaum von einer Chroot aus zugänglich zu machen oder ein Verzeichnis freizulegen, das durch einen Mount-Punkt verborgen ist (dies ist normalerweise eine vorübergehende Verwendung, während eine Verzeichnisstruktur umgestaltet wird). Verwenden Sie sie nicht, wenn Sie keinen Bedarf haben.

Nur root kann Bind-Mounts manipulieren. Sie können nicht mit gewöhnlichen Mitteln bewegt werden; sie sperren ihren Standort und die Vorfahrenverzeichnisse.

Wenn Sie einem Befehl einen symbolischen Link übergeben, wirkt der Befehl im Allgemeinen auf den Link selbst, wenn er auf Dateien wirkt, und auf das Ziel des Links, wenn er auf Dateiinhalte wirkt. Dies gilt auch für Verzeichnisse. Das ist meistens das Richtige. Einige Befehle haben Optionen, um symbolische Links anders zu behandeln, zum Beispiel ls -L , cp -d , rsync -l . Was auch immer Sie zu tun versuchen, es ist viel wahrscheinlicher, dass Symlinks das richtige Werkzeug sind, als Bind Mounts das richtige Werkzeug.

Verwandt:Linux – Ubuntu Server, Terminal-Schriftart auf eine benutzerdefinierte ttf-Schriftart setzen?
Linux
  1. Gibt es Namenskonventionen für Variablen in Shell-Skripten?

  2. Wofür sind Inodes gut?

  3. Gibt es Unterschiede zwischen dem Mounten eines /proc-Dateisystems innerhalb einer Chroot im Vergleich zum Mounten von außen?

  4. Binden Sie einen SFTP-Benutzer ein, nachdem Sie Chroot verwendet haben

  5. Gibt es eine Möglichkeit zu überprüfen, ob symbolische Links auf ein Verzeichnis verweisen?

Gibt es bekannte und häufig verwendete Shell-Scripting-Ides für Un*x?

Gibt es ein WinSCP-Äquivalent für Linux?

Gibt es C-APIs, um den Basisdateinamen aus seinem vollständigen Pfad in Linux zu extrahieren?

Gibt es einen Befehl, um eine Reihe von Schritten in einem Verzeichnis zurückzugehen, ohne cd zu verwenden?

Gibt es Alternativen zur Verwendung von `udev`?

Wie kann man den Besitz von symbolischen Links ändern?