GNU/Linux >> Linux の 問題 >  >> Linux

2 つのファイル パスが同じファイル オブジェクトを参照していることを確認する最善の方法は何ですか?

Boost.Filesystem をチェックアウトできます 図書館。具体的には equivalent という方法があります それはあなたが探していることを正確に行うようです:

using namespace boost::filesystem;

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

ファイル システム ライブラリ

C++17 以降、標準の <filesystem> を使用できます 図書館。あなたが探している関数は equivalent です 、名前空間 std::filesystem の下 :

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

ドキュメントから要約すると、この関数は 2 つのパスをパラメーターとして取り、それらが同じファイルまたはディレクトリを参照する場合は true を返し、それ以外の場合は false を返します。 noexcept もあります 3 番目のパラメーターを取るオーバーロード:std::error_code 考えられるエラーを保存します。

詳細については、別のスタック オーバーフローの質問に対する私の完全な回答をご覧ください。


Linux
  1. テキストファイルからセグメントを取り出すための最良の方法は何ですか?

  2. Linux で ext4 ファイルシステムのパフォーマンスを向上させるためのマウント オプションは何ですか

  3. inotify を使用する適切な方法は何ですか?

  1. Windows の Linux の File コマンドに相当するものは何ですか?

  2. Linux で 2 つ以上のファイルを結合する最速の方法は何ですか?

  3. SELinuxを学ぶ最良の方法は何ですか?

  1. 別のファイルにない1つのファイルの行を取得するためのツール?

  2. 同じルートを持つ 2 つのサブディレクトリは、同じマウントされたファイル システム上にあることが保証されていますか?

  3. ボリュームが Bash スクリプトでマウントされているかどうかを確認する最良の方法は何ですか?