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

Was ist der beste Weg, um festzustellen, dass zwei Dateipfade auf dasselbe Dateiobjekt verweisen?

Sie könnten sich den Boost.Filesystem ansehen Bibliothek. Insbesondere gibt es eine Methode equivalent das scheint genau das zu tun, wonach Sie suchen:

using namespace boost::filesystem;

path p("/path/to/file/one");
path q("/sym_link/to/one");
assert(equivalent(p, q));

Dateisystembibliothek

Seit C++17 können Sie den Standard <filesystem> verwenden Bibliothek. Die gesuchte Funktion ist equivalent , unter Namespace std::filesystem :

bool std::filesystem::equivalent(const std::filesystem::path& p1, const filesystem::path& p2);

Um die Dokumentation zusammenzufassen:Diese Funktion nimmt zwei Pfade als Parameter und gibt true zurück, wenn sie auf dieselbe Datei oder dasselbe Verzeichnis verweisen, andernfalls false. Es gibt auch einen noexcept Überladung, die einen dritten Parameter akzeptiert:eine std::error_code um eventuelle Fehler zu speichern.

Weitere Informationen finden Sie in meiner vollständigen Antwort auf eine weitere Frage zum Stapelüberlauf.


Linux
  1. Was ist der beste Weg, um ein Segment aus einer Textdatei zu entnehmen?

  2. Wie verwendet man inotify richtig?

  3. Was ist der beste Weg, um mit Speichermangel in Java umzugehen?

  4. Wie lernt man SELinux am besten?

  5. Befinden sich zwei Unterverzeichnisse mit demselben Stammverzeichnis garantiert im selben gemounteten Dateisystem?

Werkzeug, um die Zeilen in einer Datei zu erhalten, die nicht in einer anderen sind?

Was sind die legitimen Verwendungen des Befehls „Berühren“?

Diff meldet, dass sich zwei Dateien unterscheiden, obwohl sie gleich sind!?

Welche Mount-Optionen gibt es, um die Leistung des ext4-Dateisystems unter Linux zu verbessern?

Wie kann ich zwei Abschnitte derselben Datei unterscheiden?

Was ist der beste Weg, um Informationen über aktuell nicht gemountete Laufwerke zu erhalten?