關(guān)于“.DS_Store”文件

說明解析

“.DS_Store”文件:DS_Store 是用來存儲這個文件夾的顯示屬性的:比如文件圖標(biāo)的擺放位置。刪除以后的副作用就是這些信息的失去。(當(dāng)然,這點(diǎn)副作用其實(shí)不是太大)

“.DS_Store”是Mac OS中 保存文件夾自定義屬性隱藏文件** ,比如:文件的圖標(biāo)位置、視圖設(shè)置 或 背景色(相當(dāng)于Windows下的desktop.ini )。

盡管這些文件本來是為Finder所使用,但它們被設(shè)想作為一種更通用的有關(guān)顯示設(shè)置的元數(shù)據(jù)存儲,諸如圖標(biāo)位置和視圖設(shè)置。
例如,在Mac OS X 10.4 "Tiger"中“.DS_Store”包含了一文件夾的所有文件的Spotlight注釋。 然而,在Mac OS X 10.5 "Leopard"中這種方式又被更改了,注釋(現(xiàn)稱為關(guān)鍵字 )被改成存儲在了擴(kuò)展文件屬性 中。

讓隱藏文件 顯示出來的方式,請參考:展示Mac里面Finder的隱藏文件


網(wǎng)站上的“.DS_Store” 文件 處理

若在和別人交換文件(或你做的網(wǎng)頁需要上傳的時候),應(yīng)該把 “.DS_Store” 文件刪除比較妥當(dāng),因?yàn)槔锩姘艘恍┠悴灰欢ㄏM麆e人看見的信息(尤其是網(wǎng)站,通過 “.DS_Store” 可以知道這個目錄里面所有文件的清單,很多時候這是一個不希望出現(xiàn)的問題)

$filepath = images;
$handle = opendir($filepath);
while (false != ($file = readdir($handle))) {
if ($file != . && $file != .. && $file != .DS_Store && $file != index.html && $file != index.htm && $file != index.php) {
if ($output) $output .= |;
$output .= $file;
closedir($handle);
echo &files=$output&; //輸出遍歷此文件夾所有的內(nèi)容
?>


常見的處理:

點(diǎn)擊這個網(wǎng)址:http://asepsis.binaryage.com/ ,下載、安裝好之后,重啟mac。ASEPSIS 會把所有的“.DS_Store” 重定向到 "/usr/local/.dscage"路徑
然后可以用以下指令刪除mac上所有的“.DS_Store”:

find ~ -name ".DS_Store" -delete

// 或者
find <your path> -name ".DS_Store" -delete



對“.DS_store”的 生死操作:
1.禁止 “.DS_store”生成
打開terminal,復(fù)制黏貼下面的命令,回車執(zhí)行,重啟Mac即可生效。

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE

2.恢復(fù) “.DS_store”生成

defaults delete com.apple.desktopservices DSDontWriteNetworkStores

3.刪除 所有目錄的“.DS_store”文件:
terminal中輸入:

sudo find / -name ".DS_Store" -depth -exec rm {} \;

??:刪除 當(dāng)前目錄的“.DS_store”文件

find . -name '*.DS_Store' -type f -delete



項(xiàng)目工程中 處理

而在xcode中,使用 集中式svn分布式git版本管理工具 進(jìn)行管理的時候,也會多出一個“.DS_Store”文件(用于存儲當(dāng)前文件夾的一些 Meta 信息)。
而在每次提交代碼時,都需要在代碼倉庫的 “.gitignore”文件 中 聲明,忽略這類文件。

??當(dāng)然有方法可以全局性的忽略:
1.創(chuàng)建 “~/.gitignore_global” 文件,把需要全局忽略的文件類型塞到這個文件里。

# .gitignore_global
####################################
######## OS generated files ########
####################################
.DS_Store
.DS_Store?
*.swp
._*
.Spotlight-V100
.Trashes
Icon?
ehthumbs.db
Thumbs.db
####################################
############# packages #############
####################################
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip


2.在自己的 “~/.gitconfig” 中引入 “.gitignore_global”。
“.gitconfig” 文件 ??:

[user]
    name = goyohol
    email = xxxxx@163.com
[push]
    default = matching
[core]
    excludesfile = /Users/goyohol/.gitignore_global


搞定之后!在所有的文件夾下 “.DS_Store”、“.swp”、“.zip” 等文件類型會被 Git 自動忽略。




本文參考 :
知乎 : .DS_Store 文件是什么?

stackoverflow : .gitignore all the .DS_Store files in every folder and subfolder
stackoverflow : Global Git ignore

OSXDaily : What is a .DS_Store file?

github : gitignore/Global/















goyohol's essay

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 前言 :關(guān)于.DS_Store是什么可以參考另一文章 如果刪除GIT中的.DS_Store 簡單的說Mac每個目錄...
    跨境大師兄閱讀 64,777評論 8 59
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,993評論 19 139
  • Mac中每個目錄都會有個文件叫.DS_Store,用于存儲當(dāng)前文件夾的一些Meta信息。每次提交代碼時,我都要在代...
    shier閱讀 6,584評論 4 4
  • 片段介紹了另外一種平息憤怒的方法:1.切斷憤怒源頭,2.獲取緩和性信息:了解對方和自己發(fā)生沖突背后的原因。這種方法...
    小太陽and小煤球閱讀 208評論 0 0
  • 最近流行慢生活。人們向往以前的慢悠悠的日子。 是啊。在快節(jié)奏的時代,忙碌的人們壓力大,內(nèi)心浮躁。許多人向往放慢腳步...
    一世福緣閱讀 5,243評論 106 313