.DS_store是什么?怎么删除?

DS_Store,英文全称是 Desktop Services Store,一种由macOS系统自动创建的隐藏文件,存在于每一个用「访达」打开过的文件夹下面。

  • 作用:存储当前文件夹在桌面显示相关方面的一些自定义属性,包括文件图标的位置、文件夹上次打开时窗口的大小、展现形式和位置等。它存储的元数据仅仅被「访达」用于文件夹的自定义显示。
  • 为什么要删除:在 macOS 与电脑之间拷贝或传输文件的时候,DS_Store 文件会默认被包含在内,可能会引起一些不必要的问题。
  • 如何删除:
    1. 直接删除: 删除当前文件夹下的所有.DS_Storefind . -name '.DS_Store' -type f -delete 删除本机上所有的.DS_Storesudo find / -name “.DS_Store” -depth -exec rm {} \; 通过这种方式删除后,在再次使用访达打开文件夹时,.DS_Store还是会被创建
    2. Git仓库管理忽略DS_Store文件 这个是我大多数情况下的需求,.DS_Store对我无关紧要,但是又不想每次加.gitignore去忽略这个文件。
      • 将 . DS_Store 加入全局的 .gitignore 文件 echo .DS_Store >> ~/.gitignore_global
      • 将这个全局的 .gitignore 文件加入Git的全局config文件中 git config --global core.excludesfile ~/.gitignore_global 这个是我大多数情况下的需求,.DS_Store对我无关紧要,但是又不想每次加.gitignore去忽略这个文件。
    3. 目前为止还不能禁止Macos在本地磁盘上生成.DS_Store
      • 可以禁止.DS_Store在网络设备上的生成 defaults write com.apple.desktopservices DSDontWriteNetworkStores true
      • 禁止.DS_Store在USB设备上生成 defaults write com.apple.desktopservices DSDontWriteUSBStores true
    4. 使用第三方daemon重定向.DS_Store
      • Asepsis: 将 .DS_Store 重定向到统一缓存,而不是位于每个文件夹中

        Warning: Asepsis is no longer under active development and supported under OS X 10.11 (El Capitan) and later.

Reference

  1. https://zhuanlan.zhihu.com/p/439868892
  2. https://stackoverflow.com/questions/18015978/how-to-stop-creating-ds-store-on-mac
  3. https://iboysoft.com/wiki/ds-store.html#can-i-delete-dsstore-files-on-mac



Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • Solana Core Concepts: Accounts, Programs, and PDAs
  • Python3 Concurrency: asyncio module/async/await
  • Python Cheat Sheet
  • MIT6.824 Lab2A Raft Leader Election
  • Linux中的top command