
友人が、cp
ディスク イメージ (正確には sparsebundle) をコピーするのに を使用する際に問題を抱えていました。私は、彼が使用していた行は、sparsebundle 自体をコピーするのではなく、/contents/ (sparsebundle はパッケージ、つまり GUI でファイルのように扱われるディレクトリ) のすべてを新しいディレクトリにコピーしていることを突き止めました。
その後、実験のために自分のコンピューターにスパースバンドルを作成しcp
、彼が得た動作を再現しました。その後、Finder と Dock は/tmp
ファイルのように扱い始めました。サイドバーに作成したエントリをクリックすると、ターミナル ウィンドウが開きます/tmp ; exit;
(もちろん、/tmp
ディレクトリなので失敗します)。下部にあるオプションを除いて、スタックを通常どおり使用できましたOpen in Finder
。このオプションはスタックを実行しようとします。
不思議なことに、サブディレクトリを開いてコマンド ( + )/tmp
を使用すると、Finder で開くことができました。また、コマンドラインから通常どおりアクセスすることもできました。Go > Enclosing Folder
commandup 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 では単純なファイルとして表示されます) からコピーされたと思われます。したがって、このフラグが設定されている場合に、表示される動作は多かれ少なかれ予想どおりです。