GNU/Linux >> Znalost Linux >  >> Linux

Jaký je nejlepší způsob, jak určit, že dvě cesty k souboru odkazují na stejný objekt souboru?

Můžete se podívat na Boost.Filesystem knihovna. Konkrétně existuje metoda equivalent zdá se, že dělá přesně to, co hledáte:

using namespace boost::filesystem;

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

Knihovna systému souborů

Od C++17 můžete použít standardní <filesystem> knihovna. Funkce, kterou hledáte, je equivalent , pod jmenným prostorem std::filesystem :

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

Abychom to shrnuli z dokumentace:tato funkce bere jako parametry dvě cesty a vrací true, pokud odkazují na stejný soubor nebo adresář, jinak false. Existuje také noexcept přetížení, které přebírá třetí parametr:std::error_code do kterého se uloží případná chyba.

Pro více informací se podívejte na mou úplnou odpověď na další otázku přetečení zásobníku.


Linux
  1. Jaký je nejlepší způsob, jak vyjmout segment z textového souboru?

  2. Jaké jsou možnosti připojení pro zlepšení výkonu souborového systému ext4 v Linuxu

  3. Jaký je nejlepší způsob, jak se naučit SELinux?

  1. Jaké příkazy jsou dostupné v sekci %pre souboru Kickstart na CentOS?

  2. Je zaručeno, že dva podadresáře se stejným kořenem budou na stejném připojeném souborovém systému?

  3. Co je to souborový systém NSFS?

  1. Nástroj pro získání řádků v jednom souboru, které nejsou v jiném?

  2. Jaká jsou legitimní použití příkazu `touch`?

  3. Jaký je nejlepší způsob, jak zkontrolovat, zda je svazek připojen ve skriptu Bash?