Ikon? file pada desktop OS X

82

Ketika lssaya Desktop saya dari terminal (dengan menggunakan ls ~/Desktop), saya melihat file bernama Icon?. Sejauh yang saya tahu, itu kosong ( nano Icon?tidak menunjukkan apa-apa). Itu tidak muncul di Desktop saya yang sebenarnya, dan open Icon?menunjukkan peringatan Finder

Item ini digunakan oleh Mac OS X dan tidak dapat dibuka

Ini adalah output dari 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"

Adakah yang tahu apa ini?

Chris
sumber
6
Pertanyaan sebenarnya adalah: adakah cara untuk menghentikan sistem operasi dari membuat file-file sialan ini di setiap direktori? Sangat mengganggu saya karena mereka muncul di Dropbox.
JeremyKun
1
@JeremyKun 2017 di sini dan saya ingin tahu jawabannya.
escapecharacter
File-file ini TIDAK dibuat secara otomatis "di setiap direktori" kecuali Anda memiliki beberapa perangkat lunak jahat yang menyebabkan pembuatannya. Juga - mereka mungkin mengganggu Anda, tetapi mereka juga memiliki fungsionalitasnya. Ini implementasi "ikon pengguna Kustom" di MacOS. Jika pengguna memilih untuk menempelkan gambar apa saja dari keinginannya untuk berfungsi sebagai ikon dari beberapa file atau direktori - itu akan berakhir sebagai iCon tersembunyi? mengajukan. Menghapusnya hanya menghapus ikon kustom.
Motti Shneor

Jawaban:

95

Apa itu?

Nama itu sebenarnya Icon\r, dengan \rmenjadi carriage return 0x0D. Jika membiarkan shell melengkapi jalur di Terminal, ia menghasilkan Icon^M, ^Mmenjadi \r.

Icon^Madalah file yang ada di semua direktori yang memiliki ikon khusus di Finder. Jika Anda mengubah ikon direktori misalnya dalam dialog Dapatkan Info dengan menempelkan gambar ke ikon di sudut kiri atas, Icon^Mfile dibuat.

Mengganti ikon volume akan membuat .VolumeIcon.icnsfile tersembunyi .

Mengapa itu tidak terlihat?

Itu tidak terlihat di Finder, karena hiddenatributnya diatur.

$ ls -lO Icon^M 
-rw-r--r--@ 1 danielbeck  staff  hidden 0 24 Apr 23:29 Icon?

Ubah dengan chflags nohidden Icon^M.

Di mana datanya?

Sementara garpu data file (yaitu konten) kosong (yaitu ukuran file 0 byte di Terminal), data ikon sebenarnya disimpan dalam garpu sumber daya file .

$ ls -l@ Icon^M
    com.apple.ResourceFork  350895 

Anda dapat menyalin garpu sumber daya ke file (untuk melihat misalnya dalam hex editor) seperti ini:

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

 Bagaimana saya bisa melihatnya?

Cara termudah untuk mendapatkan gambar adalah dengan menyalin ikon dari dialog Dapatkan Info dari folder yang ada di dalam clipboard, dan kemudian buat gambar baru dari clipboard di Preview ( Cmd-N). Itu adalah icnsgambar lalu secara default.

Formatnya adalah JPEG 2000 sesuai dengan versi Mac OS XnView dan Anda harus dapat membukanya dengan program itu. Tampaknya tidak berfungsi dengan program lain yang seharusnya mendukung JPEG 2000, jadi informasi format ini mungkin salah.

Daniel Beck
sumber
3
Apple sebenarnya melakukan penyembunyian data mereka di fork resource cukup sering. Saya tidak pernah bisa memutuskan apakah itu rapi atau menyesatkan.
Lukasa
2
Itu konsisten. Ikon setelah semua adalah isi garpu sumber daya.
JdeBP
3
Anda merindukan kayu untuk satu pohon, belalang. Lihat di luar file ikon volume ke hutan besar di mana, secara tradisional di MacOS setidaknya, ikon dapat ditemukan di garpu sumber daya . Jika Anda mencoba untuk menjadi modern dan trendi dan kami-tidak-tidak-perlu-steenking-resource-forks-we-Unix-now, Anda harus benar-benar memperbaiki jawaban Anda untuk menggunakan /..namedfork/rsrcsufiks modern dan hip sebagai gantinya dari salah satu yang menghasilkan pesan peringatan. (-:
JdeBP
2
Saya menakjubkan psikis kekuasaan mengatakan bahwa semua ini printfs pergi ke sistem log.
JdeBP
10

Sebuah Icon?file di direktori berisi kustom ikon gambar untuk direktori tersebut. Gambar itu sendiri disimpan di dalam atribut file yang diperluas, khususnya, com.apple.ResourceForkitulah sebabnya Icon?file tersebut tampaknya tidak memiliki panjang.

Anda dapat mengambil data itu dengan $ xattr -p com.apple.ResourceFork Icon?atau melihat semua atribut yang diperluas dengan$ xattr -l Icon?

Pada Snow Leopard, paling tidak, ikon-ikon itu sudah dihapus untuk ikon sistem (Dalam kasus ~ / Desktop /, ikon itu akan terlihat ketika melihat direktori home Anda dalam tampilan icon.) Tetapi untuk dua ikon direktori kustom, saya miliki di sistem saya, itu masih ada.

NReilingh
sumber
"Ikon sistem" tidak pernah membuat Icon^Mfile sejauh yang saya tahu. Ganti nama folder khusus ini dengan ikon khusus (termudah untuk dilakukan ~/Applications, karena tidak ada secara default) dan ikon mereka akan berubah dengannya.
Daniel Beck
@ Daniel Yup; Saya kira OP memiliki ikon khusus untuk folder Desktop-nya.
NReilingh
5

Apa itu?

Ini adalah file yang menyimpan Gambar untuk Ikon Folder Anda, saya hanya bisa membuatnya dibuat jika saya secara manual memuat gambar ke folder. Saya tidak memiliki ini di sistem saya secara default.

Cara Menemukan Ikon ^ M file

CATATAN:

Ini tidak sama dengan .icnsekstensi file.

Jika Anda paranoid jika menemukan false positive maka gunakan: ctrl+ v ctrl+ malih-alih?

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

Cara Membuat Ikon ^ M file

  1. Buka Finder
  2. Klik kanan pada Folder
  3. Tekan & Tahan Optionpada keyboard Anda
  4. Pilih Tampilkan Inspektur
  5. Seret gambar ke ikon folder kiri atas.
  6. Jalankan ls -lahdi direktori itu
    1. Anda harus melihat:
      • -rw-r--r--@ 1 username staff 0B May 13 22:23 Icon?

Bagaimana Menghapus Ikon ^ M file

Jika Anda perlu menghapusnya untuk alasan apa pun ... katakan secara tidak sengaja sengaja mengujinya.

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

Referensi dari posting saya pada pertanyaan lain:

Bagaimana saya bisa menghapus folder kosong di Mac OS X?

JayRizzo
sumber
1
+1, karena "Cara Menghapus" hilang dari jawaban yang diterima. Dan tidak, mereka tidak berguna ketika diakses dari Windows, melalui bash minGW.
Gbarry