GNU/Linux >> Belajar Linux >  >> Linux

Apa cara terbaik untuk menentukan bahwa dua jalur file merujuk ke objek file yang sama?

Anda dapat memeriksa Boost.Filesystem Perpustakaan. Secara khusus, ada metode equivalent yang tampaknya melakukan persis seperti yang Anda cari:

using namespace boost::filesystem;

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

Pustaka sistem file

Sejak C++17 Anda dapat menggunakan <filesystem> standar Perpustakaan. Fungsi yang Anda cari adalah equivalent , di bawah namespace std::filesystem :

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

Untuk meringkas dari dokumentasi:fungsi ini mengambil dua jalur sebagai parameter dan mengembalikan true jika mereferensikan file atau direktori yang sama, sebaliknya false. Ada juga noexcept kelebihan beban yang mengambil parameter ketiga:sebuah std::error_code di mana untuk menyimpan kesalahan yang mungkin terjadi.

Untuk informasi lebih lanjut, lihat jawaban lengkap saya untuk pertanyaan stack overflow lainnya.


Linux
  1. Alat Untuk Mendapatkan Garis Dalam Satu File Yang Tidak Di File Lain?

  2. Perintah apa yang tersedia di bagian %pre file Kickstart di CentOS?

  3. Apa itu sistem file NSFS?

  1. Apa Cara Terbaik Untuk Mengambil Segmen Dari File Teks?

  2. Apa cara terbaik untuk mengatur variabel lingkungan di .bashrc?

  3. Apa cara terbaik untuk mendapatkan info tentang drive yang saat ini tidak terpasang?

  1. Apa Penggunaan Sah dari Perintah `sentuh`?

  2. Diff Reports Dua File Berbeda, Meski Sama!?

  3. Apa saja opsi pemasangan untuk meningkatkan kinerja sistem file ext4 di Linux?