GUIは/tmpをファイルとして扱う

GUIは/tmpをファイルとして扱う

友人が、cpディスク イメージ (正確には sparsebundle) をコピーするのに を使用する際に問題を抱えていました。私は、彼が使用していた行は、sparsebundle 自体をコピーするのではなく、/contents/ (sparsebundle はパッケージ、つまり GUI でファイルのように扱われるディレクトリ) のすべてを新しいディレクトリにコピーしていることを突き止めました。

その後、実験のために自分のコンピューターにスパースバンドルを作成しcp、彼が得た動作を再現しました。その後、Finder と Dock は/tmpファイルのように扱い始めました。サイドバーに作成したエントリをクリックすると、ターミナル ウィンドウが開きます/tmp ; exit;(もちろん、/tmpディレクトリなので失敗します)。下部にあるオプションを除いて、スタックを通常どおり使用できましたOpen in Finder。このオプションはスタックを実行しようとします。

不思議なことに、サブディレクトリを開いてコマンド ( + )/tmpを使用すると、Finder で開くことができました。また、コマンドラインから通常どおりアクセスすることもできました。Go > Enclosing Foldercommandup arrow

サイドバーのエントリと Stack を削除して再作成してみましたが、Dock がそれをファイルとして表示し、クリックするとすぐに実行しようとするだけでした。その後、再起動してクリアしてみましたが、正常にクリアされたように見えましたが、問題は解決しませんでした。

この問題に関して誰か説明できますか?


アップデート:ls -l権限フィールドの末尾に @ がある を試してみようと思いました。com.apple.FinderInfo拡張属性があることがわかりましたが、読み取ろうとすると次のメッセージしか表示されませんでした。

00 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

拡張属性 ( xattr -d com.apple.FinderInfo /tmp、私の場合、昇格された権限はありません) を削除すると、この問題は修正されたようですが、簡単に調べた限りでは、他の悪影響がある可能性があります (com.apple.FinderInfo以前そこに属性があったかどうかはわかりません...)。何が起こったのか、なぜこのような動作になったのか、まだ回答が欲しいです。

答え1

FinderInfo xattr の「20」は、バンドル ビットが設定されていることを示します。バンドル ビットは、Finder にフォルダーをフォルダーではなくファイルとして表示するように指示します。この属性は、sparsebundle (実際にはフォルダーですが、Finder では単純なファイルとして表示されます) からコピーされたと思われます。したがって、このフラグが設定されている場合に、表示される動作は多かれ少なかれ予想どおりです。

関連情報