(ls ~/Desktop
を使用して)端末からデスクトップをls
すると、Icon?
という名前のファイルが表示されます。私の知る限り、それは空です(nano Icon?
は何も表示しません)。実際のデスクトップには表示されず、open Icon?
にはFinderアラートが表示されます
このアイテムはMac OS Xで使用されており、開くことができません
mdls Icon?
の出力は次のとおりです。
kMDItemContentType = ""
kMDItemFSContentChangeDate = 2009-09-23 13:32:52 -0600
kMDItemFSCreationDate = 2009-09-20 07:27:46 -0600
kMDItemFSCreatorCode = "MACS"
kMDItemFSFinderFlags = 16384
kMDItemFSHasCustomIcon = 0
kMDItemFSInvisible = 1
kMDItemFSIsExtensionHidden = 0
kMDItemFSIsStationery = 0
kMDItemFSLabel = 0
kMDItemFSName = "Icon "
kMDItemFSNodeCount = 0
kMDItemFSOwnerGroupID = 20
kMDItemFSOwnerUserID = 501
kMDItemFSSize = 0
kMDItemFSTypeCode = "icon"
これが何であるかについて誰かが考えを持っていますか?
その名前は実際には_Icon\r
_で、_\r
_は改行_0x0D
_です。シェルでターミナルのパスをオートコンプリートすると、_Icon^M
_が生成され、_^M
_は_\r
_になります。
_Icon^M
_は、Finderにカスタムアイコンがあるすべてのディレクトリに存在するファイルです。ディレクトリのアイコンを変更した場合。 Get Infoダイアログで左上隅のアイコンに画像を貼り付けると、_Icon^M
_ファイルが作成されます。
ボリュームのアイコンを変更すると、代わりに非表示の_.VolumeIcon.icns
_ファイルが作成されます。
そのhidden
属性が設定されているため、Finderには表示されません。
_$ ls -lO Icon^M
-rw-r--r--@ 1 danielbeck staff hidden 0 24 Apr 23:29 Icon?
_
_chflags nohidden Icon^M
_で変更します。
ファイルのデータフォーク(つまり、コンテンツ)が空(つまり、ターミナルでのファイルサイズが0バイト)の間、実際のアイコンデータはファイルの リソースフォーク に格納されます。
_$ ls -l@ Icon^M
com.Apple.ResourceFork 350895
_
次のように、リソースフォークをファイルにコピーできます(16進エディタなどで表示するため)。
_$ cp Icon^M/..namedfork/rsrc Icondata
_
画像を取得する最も簡単な方法は、アイコンが含まれているフォルダーのGet Infoダイアログからアイコンをクリップボードにコピーし、新しいアイコンを作成することですプレビューのクリップボードからの画像(_Cmd-N
_)。これは、デフォルトでicns
イメージです。
そのフォーマットは、Mac OSバージョン XnView によるとJPEG 2000であり、そのプログラムで開くことができるはずです。 JPEG 2000をサポートする他のプログラムでは動作しないようです。そのため、このフォーマット情報はおそらく間違っています。
ディレクトリ内のIcon?
ファイルには、そのディレクトリのカスタムアイコンイメージが含まれています。画像自体は、拡張ファイル属性、具体的にはcom.Apple.ResourceFork
内に格納されます。そのため、Icon?
ファイルは長さがないように見えます。
$ xattr -p com.Apple.ResourceFork Icon?
でそのデータを取得するか、$ xattr -l Icon?
ですべての拡張属性を表示できます
Snow Leopardでは、少なくとも、システムアイコン(〜/ Desktop /の場合、アイコンビューでホームディレクトリを表示するとそのアイコンが表示されます)では段階的に廃止されているようですが、2つのカスタムディレクトリアイコンでは私のシステムに持っている、それはまだ存在しています。
これは、フォルダアイコンの画像を保存するファイルです。手動でフォルダに画像をロードした場合にのみ、これを作成できました。私のシステムにはデフォルトでこれらはありません。
注意:
これは、.icns
ファイル拡張子と同じではありません。
誤検知を見つけるかどうかについて偏執的である場合は、次を使用してください:ctrl+vctrl+m の代わりに ?
#!/bin/bash
# =============================================================================
# MAC OSX High Sierra 10.13.4 (17E199)
# Terminal: Version: 2.8.2 64-Bit (Intel): Yes
# Terminal Location: /Applications/Utilities/Terminal.app
# =============================================================================
echo 'Searching Documents for Icon files...'
find ~/Documents -type f -name 'Icon?' -print;
ls -lah
を実行します-rw-r--r--@ 1 username staff 0B May 13 22:23 Icon?
何らかの理由でそれを削除する必要がある場合...意図的にそれをテストする際に誤って言ってください。
#!/bin/bash
# =============================================================================
# MAC OSX High Sierra 10.13.4 (17E199)
# Terminal: Version: 2.8.2 64-Bit (Intel): Yes
# Terminal Location: /Applications/Utilities/Terminal.app
# =============================================================================
echo 'Removing Icon files from Documents...'
find ~/Documents -type f -name 'Icon?' -print -delete;
別の質問に関する私の投稿からの参照: