題 圖標? OS X桌面上的文件


當我 ls 終端我的桌面(使用 ls ~/Desktop),我看到一個名為的文件 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"

有沒有人知道這是什麼?


77
2018-06-18 03:43


起源


真正的問題是:有沒有辦法阻止操作系統在每個目錄中創建這些該死的文件?它真的讓我感到惱火,因為它們出現在Dropbox中。 - JeremyKun
@JeremyKun 2017在這裡,我很想知道答案。 - escapecharacter


答案:


它是什麼?

它的名字實際上是 Icon\r,與 \r 是回程 0x0D。如果讓shell自動完成終端中的路徑,則會產生 Icon^M^M 存在 \r

Icon^M 是Finder中具有自定義圖標的所有目錄中存在的文件。如果您更改目錄的圖標,例如在它的 獲取信息 通過將圖像粘貼到左上角的圖標中來對話框 Icon^M 文件已創建。

更改卷的圖標會創建隱藏的圖標 .VolumeIcon.icns 而是文件。

它為什麼看不見?

它在Finder中是不可見的,因為它 hidden 屬性已設置。

$ 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 

您可以將資源分支複製到文件(例如在十六進制編輯器中查看),如下所示:

$ cp Icon^M/..namedfork/rsrc Icondata

我怎麼看呢?

獲取圖像的最簡單方法是從中復製圖標 獲取信息 它包含在剪貼板中的文件夾對話框,然後在預覽中從剪貼板創建一個新圖像(Cmd-N)。這是一個 icns 圖像然後默認。

它的格式是JPEG 2000,根據Mac OS版本 XnView的 你應該能夠用該程序打開它。它似乎不適用於其他應支持JPEG 2000的程序,因此這種格式信息可能是錯誤的。


93
2018-06-18 04:37



如何創建一個rsrc圖標文件。 - Daniel Beck♦
Apple實際上經常將這些數據隱藏在資源分支中。我永遠無法決定它是否整潔或誤導。 - Lukasa
這是一致的。畢竟是圖標 是 資源分叉內容。 - JdeBP
你錯過了一棵樹,蚱蜢的木頭。除了音量圖標文件外,還有大量的森林,傳統上至少在MacOS中, 圖標可以在資源分支中找到。如果你想成為現代和時尚,我們 - 不需要 - 不需要steenking - 資源 - 叉 - 我們 - 現在 - 你應該真正糾正你使用現代和時尚的答案 /..namedfork/rsrc 後綴而不是生成警告消息的後綴。 ( - : - JdeBP
太棒了 精神  權力 告訴我 所有這些 printf小號 轉到系統日誌。 - JdeBP


一個 Icon? 目錄中的文件包含該目錄的自定義圖標圖像。圖像本身存儲在擴展文件屬性中,具體而言, com.apple.ResourceFork,這就是為什麼 Icon? 文件似乎沒有長度。

您可以使用檢索該數據 $ xattr -p com.apple.ResourceFork Icon? 或查看所有擴展屬性 $ xattr -l Icon?

至少在Snow Leopard上,它們似乎已經逐步淘汰系統圖標(在〜/ Desktop /的情況下,在圖標視圖中查看主目錄時可以看到該圖標。)但對於兩個自定義目錄圖標我在我的系統上,它仍然存在。


10
2018-06-18 04:40



“系統圖標”從未創建過 Icon^M 據我所知,檔案。使用自定義圖標重命名這些特殊文件夾(最簡單的方法) ~/Applications,因為它無論如何都不存在)並且它們的圖標將隨之改變。 - Daniel Beck♦
@Daniel Yup;我想OP有一個桌面文件夾的自定義圖標,然後。 - NReilingh


它是什麼?

它是存儲文件夾圖標的圖像的文件,如果我手動將圖像加載到文件夾,我只能創建它。我默認情況下在我的系統上沒有這些。

如何找到圖標^ M文件

注意:

這跟不一樣 .icns 文件擴展名。

如果發現誤報,你是否應該偏執,然後使用:CTRL+v  CTRL+ 代替 ?

#!/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;

如何創建圖標^ M文件

  1. 打開Finder
  2. 右鍵單擊文件夾
  3. 按住 選項 在你的鍵盤上
  4. 選擇“顯示檢查器”
  5. 將圖像拖到左上角文件夾圖標。
  6. ls -lah 在那個目錄上
    1. 你應該看到:
      • -rw-r--r--@ 1 username staff 0B May 13 22:23 Icon?

如何刪除Icon ^ 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 'Removing Icon files from Documents...'
find ~/Documents -type f -name 'Icon?' -print -delete;

從我的帖子中提到另一個問題:

如何在Mac OS X中刪除空文件夾?


1
2018-05-14 06:04