GNU/Linux >> Tutoriels Linux >  >> Linux

Quelle est la meilleure façon de déterminer que deux chemins de fichiers font référence au même objet fichier ?

Vous pouvez consulter le Boost.Filesystem bibliothèque. Concrètement, il existe une méthode equivalent qui semble faire exactement ce que vous cherchez :

using namespace boost::filesystem;

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

Bibliothèque de système de fichiers

Depuis C++17, vous pouvez utiliser le standard <filesystem> bibliothèque. La fonction que vous recherchez est equivalent , sous l'espace de noms std::filesystem :

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

Pour résumer à partir de la documentation :cette fonction prend deux chemins en paramètres et renvoie vrai s'ils référencent le même fichier ou répertoire, faux sinon. Il y a aussi un noexcept surcharge qui prend un troisième paramètre :un std::error_code dans lequel enregistrer toute erreur éventuelle.

Pour plus d'informations, consultez ma réponse complète à une autre question de débordement de pile.


Linux
  1. Outil pour obtenir les lignes d'un fichier qui ne sont pas dans un autre ?

  2. Diff signale que deux fichiers diffèrent, bien qu'ils soient identiques ! ?

  3. Quelle est la bonne façon d'utiliser inotify ?

  4. Quelles sont les différences entre grep, awk et sed ?

  5. Quel est l'équivalent de la commande Linux File pour Windows ?

Quelles sont les options de montage pour améliorer les performances du système de fichiers ext4 sous Linux

comment puis-je différencier deux sections du même fichier ?

Quelle est la meilleure façon de gérer les conditions de mémoire insuffisante en Java ?

Quelles sont les applications de système de fichiers racine minimales requises pour démarrer complètement Linux ?

Deux sous-répertoires avec la même racine sont-ils garantis d'être sur le même système de fichiers monté ?

Qu'est-ce que le système de fichiers NSFS ?