禁止.DS_store生成

禁止.DS_store生成

image.png

.DS_Store,英文全稱(chēng) Desktop Services Store,是Mac OS中保存文件夾自定義屬性的隱藏文件,目的在于存貯文件夾的自定義屬性,例如文件圖標(biāo)位置、視圖設(shè)置,或背景色等,相當(dāng)于Windows下的 desktop.ini。.DS_Store 默認(rèn)放在每個(gè)文件夾的下面,這給我們帶來(lái)了諸多不便,例如:

  • 壓縮包里每個(gè)文件夾都帶有.DS_Store文件,在windows系統(tǒng)里面成了垃圾文件;
  • git、svn之類(lèi)的版本管理工具要額外的對(duì)這種文件進(jìn)行忽略處理;
  • 如果是要發(fā)布到服務(wù)器的文件夾,可能會(huì)形成文件泄露漏洞。

在 macOS High Sierra 之后,我們看到蘋(píng)果對(duì)此做出了優(yōu)化,即使你在finder中使用快捷鍵 Shift + Command (?) + . 來(lái)顯示隱藏文件 ,finder也不再顯示隱藏的.DS_Store文件,但是在終端中,我們還是可以用 ll命令看到它的身影,蘋(píng)果這是要掩耳盜鈴嗎?

那我們有什么辦法來(lái)禁止.DS_Store的生成呢?網(wǎng)上流傳的禁止.DS_Store生成方法是使用命令:

$ defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE

但是這個(gè)命令只有在網(wǎng)絡(luò)共享的時(shí)候有效,也就是在本地?zé)o效。比如拖動(dòng)一下圖標(biāo)的位置或者標(biāo)記一下就會(huì)自動(dòng)生成了,不是我們所理想的禁止生成,所以還是需要針對(duì)本地進(jìn)行處理。

是時(shí)候出動(dòng) Asepsis 這把瑞士軍刀了!

一直以來(lái),Asepsis 都是我在mac OS 上必裝工具之一,它會(huì)阻止Finder將.DS_Store文件寫(xiě)入文件夾。 Asepsis的工作原理是攔截所有.DS_Store文件的創(chuàng)建或?qū)懭?,并將它們重定向?/usr/local/.dscage。 這樣 Finder 如常工作,且不會(huì)有這種無(wú)用文件污染文件系統(tǒng)。

不幸的是,在 OS X 10.11 El Capitan 發(fā)布之后,Apple 啟用了 System Integrity Protection (SIP),它會(huì)阻止 Asepsis 的安裝和正常運(yùn)行。Asepsis 的作者已經(jīng)放棄了對(duì)它的后續(xù)支持,因?yàn)樗幌M脩?hù)為了使用這個(gè)工具而禁用系統(tǒng)關(guān)鍵安全服務(wù)。

那有什么辦法呢?

事實(shí)上我們可以在保持SIP啟用的情況安裝 Asepsis !

1) 安裝 Asepsis
首先,打開(kāi)終端并運(yùn)行以下命令:

$ touch ~/.no-asepsis-os-restriction
$ touch ~/.asepsis-suppress-update-errors

目的是繞過(guò)Asepsis的內(nèi)置兼容性檢查,因?yàn)樗荒茏R(shí)別 El Capitan 之后的版本。

現(xiàn)在 你可以從官網(wǎng)安裝最新版本的Asepsis(截至2016年2月為1.5.2)。 運(yùn)行安裝程序,它提示你重新啟動(dòng),這時(shí)SIP會(huì)阻止工具的運(yùn)行。

2) 進(jìn)入恢復(fù)模式并禁用 SIP

重啟電腦,按住 Command (?) + R 鍵進(jìn)入 恢復(fù)模式

看到 macOS 實(shí)用工具 屏幕后,轉(zhuǎn)到屏幕頂部的 實(shí)用工具 下拉菜單,然后選擇 終端 ,輸入:

$ csrutil disable; reboot

等待電腦重啟。

3) 安裝 Asepsis

返回非恢復(fù)模式后,打開(kāi)終端并運(yùn)行以下命令安裝Asepsis

$ asepsisctl install

如果發(fā)現(xiàn)警告 wrapper already existing,有可能之前已經(jīng)安裝過(guò)Asepsis,此時(shí)嘗試運(yùn)行 asepsisctl uninstall_wrapper 然后重新運(yùn)行 asepsisctl install。

4) 重新啟用 SIP

重啟并按住 Command (?) + R 進(jìn)入恢復(fù)模式,運(yùn)行命令:

$ csrutil enable; reboot

5) 驗(yàn)證 Asepsis 是否工作

重啟后運(yùn)行命令:

$ asepsisctl diagnose

如果正常的話(huà)你會(huì)看到:Your Asepsis installation seems to be OK.

贈(zèng)送命令:

# 刪除系統(tǒng)所有.DS_Store文件
$ sudo find / -name ".DS_Store" -depth -exec rm **{}** \;
# 刪除當(dāng)前目錄以及子目錄的DS_Store文件
$ find . -name ".DS_Store" -delete
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • DS_Store是Mac OS保存文件夾的自定義屬性的隱藏文件,如文件的圖標(biāo)位置或背景色,相當(dāng)于Windows的d...
    widebluesky閱讀 10,738評(píng)論 2 50
  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 32,309評(píng)論 2 89
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評(píng)論 19 139
  • 說(shuō)明解析 “.DS_Store”文件:DS_Store 是用來(lái)存儲(chǔ)這個(gè)文件夾的顯示屬性的:比如文件圖標(biāo)的擺放位置。...
    goyohol閱讀 15,267評(píng)論 0 19
  • 好像有著相同興趣愛(ài)好的人都比較容易走到一起呢 今天大C要分享的就是這樣一個(gè)故事 那么,各位看官往下看把~ Matt...
    TheWayWeMet閱讀 403評(píng)論 2 1

友情鏈接更多精彩內(nèi)容