GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es la mejor manera de determinar que dos rutas de archivo se refieren al mismo objeto de archivo?

Podrías revisar el Boost.Filesystem biblioteca. Específicamente, hay un método equivalent que parece hacer exactamente lo que estás buscando:

using namespace boost::filesystem;

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

Biblioteca del sistema de archivos

Desde C++17 puedes usar el estándar <filesystem> biblioteca. La función que está buscando es equivalent , en el espacio de nombres std::filesystem :

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

Para resumir de la documentación:esta función toma dos rutas como parámetros y devuelve verdadero si hacen referencia al mismo archivo o directorio, de lo contrario, devuelve falso. También hay un noexcept sobrecarga que toma un tercer parámetro:un std::error_code en el que guardar cualquier posible error.

Para obtener más información, consulte mi respuesta completa a otra pregunta sobre el desbordamiento de pila.


Linux
  1. ¿Herramienta para obtener las líneas en un archivo que no están en otro?

  2. ¿Cuáles son los usos legítimos del comando "tocar"?

  3. ¿Cuáles son las opciones de montaje para mejorar el rendimiento del sistema de archivos ext4 en Linux?

  4. ¿Cuál es la forma correcta de usar inotify?

  5. ¿Cuáles son las diferencias entre grep, awk y sed?

¿Cómo puedo diferenciar dos secciones del mismo archivo?

¿Cuál es la forma más rápida de combinar dos o más archivos en Linux?

¿Cuál es la mejor manera de aprender SELinux?

¿Se garantiza que dos subdirectorios con la misma raíz estén en el mismo sistema de archivos montado?

¿Cuál es la mejor manera de establecer una variable de entorno en .bashrc?

¿Cuál es la mejor manera de verificar si un volumen está montado en un script Bash?