Macアプリはどのようにしてファイルの場所を追跡できますか?

日常

Macで次のような動作を観察します。

  • PDF ExpertでPDFを開き、ファイルにいくつかの変更を加え、Finderでファイルを移動し、PDF Expertに保存すると、新しい場所に正しく保存されます。
  • のようなディレクトリでシェルを開き、~/foo別のアプリでディレクトリをゴミ箱に移動すると、シェルのpwdが正しく出力します~/.Trash/foo

ボンネットの下で何が起こっているのですか?これらのケースは、アプリがemacsのようにファイルの絶対パスを保持しているだけではないことを示しているようです(私はこれで正しいですか?)、またはそれはまったく異なるメカニズムですか?

thecarpy

macosには/.vol/、実際のディレクトリとファイルにマップされた特別なシステムがあります。ファイルとディレクトリには/.vol/<device_id>/<inode_number>、ファイルシステム上のどこにファイルがあるかに関係なく、を介してアクセスできます。

それは素敵な小さなシステムです。

したがって、プログラムは、たとえば、のiノード番号を取得して/Users/jdoe/someFile.txtからそれを開くことができます/.vol/12345/6789(この場合、デバイスIDは12345、iノード番号は6789です)。次に、/Users/jdoe/someFile.txt(同じボリューム上で)好きな場所に移動すると、すべてが正常に機能します。これをサポートするシェルスクリプトを作成することもできmagicます。

ls -di <file> iノード番号を取得します。

$ ls -di /User/jdoe/someFile.txt
6789 /User/jdoe/someFile.txt

編集:

statIMSoPで強調表示されているリンクされた回答に従って、ボリュームのIDとiノード番号を取得するために使用します。

GetFileInfo /.vol/12345/6789以前ににあったファイルの現在の場所を返します/Users/jdoe/someFile.txt

詳細については、https://stackoverflow.com/questions/11951328/is-there-any-function-to-retrieve-the-path-associated-with-an-inode参照してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Bazelはどのようにしてファイルをすばやく追跡しますか?

分類Dev

ファイルの出所は追跡可能ですか?どうすれば消毒できますか?

分類Dev

EmacsはBBEditのようなファイルを追跡できますか?

分類Dev

Netbeansはプロジェクトの場所をどのように追跡しますか?

分類Dev

gitはファイルへの変更をどのように追跡しますか

分類Dev

Androidアプリのインストール追跡はどのように機能しますか?

分類Dev

追跡されていないファイルをどのように隠しますか?

分類Dev

アプリケーションがまだ開いている間に、.mdfファイルと.ldfファイルをある場所から別の場所にコピーするにはどうすればよいですか?

分類Dev

を使用してRStudioでgitの追跡されていないファイルを非表示にするにはどうすればよいですか?

分類Dev

gitに追跡されていないすべてのファイルを再帰的にリストさせるにはどうすればよいですか?

分類Dev

31 GBのログファイルを表示していますが、ファイルの場所を追跡できません

分類Dev

.gitignoreを使用して特定のファイルのみを追跡するにはどうすればよいですか?

分類Dev

ファイルをクリップボードにコピーして別の場所に貼り付けるにはどうすればよいですか?

分類Dev

ファイルの特定の場所にあるテキストを、bashスクリプトを使用して別のファイルにあるテキストに置き換えるにはどうすればよいですか?

分類Dev

デルファイのポイントを追跡するにはどうすればよいですか

分類Dev

追跡されているファイルのリストをgitに表示させるにはどうすればよいですか?

分類Dev

Gitを使用してユーザーのドットファイルを追跡するにはどうすればよいですか?

分類Dev

アプリはどのようにJAR内のファイルを読み書きに使用できますか?

分類Dev

Linuxでのアプリのインストール中にファイルがインストールされた場所を追跡する

分類Dev

Linuxはプロセスによってアクセスされたすべてのファイルを追跡しますか?

分類Dev

実行可能ファイルの場所に関係なく、相対パスを使用してプロジェクトディレクトリ内のファイルにアクセスするにはどうすればよいですか?

分類Dev

「ファイルを開く」で起動した場合、アプリケーションはどのようにファイル名を取得しますか?

分類Dev

「ファイルを開く」で起動した場合、アプリケーションはどのようにファイル名を取得しますか?

分類Dev

Windows OSはどのようにしてプロセスの仮想メモリを追跡しますか?

分類Dev

空のフォルダを再帰的に追跡し、その中に.keepファイルを配置するにはどうすればよいですか?

分類Dev

アプリケーションインサイトはUser_Idをどのように追跡していますか?

分類Dev

突風分析はアプリのバージョン番号をどのように追跡しますか?

分類Dev

スクリプトまたはスタイルファイルの場所をnugetから変更するにはどうすればよいですか?

分類Dev

指定したディレクトリをアーカイブファイルの目的の場所に作成するにはどうすればよいですか?

Related 関連記事

  1. 1

    Bazelはどのようにしてファイルをすばやく追跡しますか?

  2. 2

    ファイルの出所は追跡可能ですか?どうすれば消毒できますか?

  3. 3

    EmacsはBBEditのようなファイルを追跡できますか?

  4. 4

    Netbeansはプロジェクトの場所をどのように追跡しますか?

  5. 5

    gitはファイルへの変更をどのように追跡しますか

  6. 6

    Androidアプリのインストール追跡はどのように機能しますか?

  7. 7

    追跡されていないファイルをどのように隠しますか?

  8. 8

    アプリケーションがまだ開いている間に、.mdfファイルと.ldfファイルをある場所から別の場所にコピーするにはどうすればよいですか?

  9. 9

    を使用してRStudioでgitの追跡されていないファイルを非表示にするにはどうすればよいですか?

  10. 10

    gitに追跡されていないすべてのファイルを再帰的にリストさせるにはどうすればよいですか?

  11. 11

    31 GBのログファイルを表示していますが、ファイルの場所を追跡できません

  12. 12

    .gitignoreを使用して特定のファイルのみを追跡するにはどうすればよいですか?

  13. 13

    ファイルをクリップボードにコピーして別の場所に貼り付けるにはどうすればよいですか?

  14. 14

    ファイルの特定の場所にあるテキストを、bashスクリプトを使用して別のファイルにあるテキストに置き換えるにはどうすればよいですか?

  15. 15

    デルファイのポイントを追跡するにはどうすればよいですか

  16. 16

    追跡されているファイルのリストをgitに表示させるにはどうすればよいですか?

  17. 17

    Gitを使用してユーザーのドットファイルを追跡するにはどうすればよいですか?

  18. 18

    アプリはどのようにJAR内のファイルを読み書きに使用できますか?

  19. 19

    Linuxでのアプリのインストール中にファイルがインストールされた場所を追跡する

  20. 20

    Linuxはプロセスによってアクセスされたすべてのファイルを追跡しますか?

  21. 21

    実行可能ファイルの場所に関係なく、相対パスを使用してプロジェクトディレクトリ内のファイルにアクセスするにはどうすればよいですか?

  22. 22

    「ファイルを開く」で起動した場合、アプリケーションはどのようにファイル名を取得しますか?

  23. 23

    「ファイルを開く」で起動した場合、アプリケーションはどのようにファイル名を取得しますか?

  24. 24

    Windows OSはどのようにしてプロセスの仮想メモリを追跡しますか?

  25. 25

    空のフォルダを再帰的に追跡し、その中に.keepファイルを配置するにはどうすればよいですか?

  26. 26

    アプリケーションインサイトはUser_Idをどのように追跡していますか?

  27. 27

    突風分析はアプリのバージョン番号をどのように追跡しますか?

  28. 28

    スクリプトまたはスタイルファイルの場所をnugetから変更するにはどうすればよいですか?

  29. 29

    指定したディレクトリをアーカイブファイルの目的の場所に作成するにはどうすればよいですか?

ホットタグ

アーカイブ