Как прекратить создание .DS_Store на Mac? [закрыто]

163

Я разрабатываю сайты на Mac, и каждый раз, когда я создаю какую-то папку (или файл в этой папке), в этой папке создается .DS_Store.

Как предотвратить создание файла .DS_Store?

iWizard
источник
Не нравится :) Что я должен использовать, чем?
iWizard
1
@CroiOS Terminal + VIM
Грег
Это был комментарий, как реальная альтернатива - теоретически вы могли использовать только Терминал или другие инструменты, например, редакторы (или, я думаю, Path Finder как браузер файлов), но на практике вы застряли с этими файлами
мммммм
7
Просто игнорируйте файл в вашей системе контроля версий
Millimoose
4
Похоже, что этот вопрос не по теме, поскольку он касается аппаратного и программного обеспечения Apple - лучше всего подойдет «Задать вопрос».
Дэн Дж

Ответы:

36

Это возможно с помощью mach_inject . Посмотрите на Смерть в .DS_Store

Я обнаружил, что переопределение HFSPlusPropertyStore :: FlushChanges () функцией, которая просто ничего не делала, успешно предотвратило создание файлов .DS_Store на Snow Leopard и Lion.

DeathToDSStore исходный код

ПРИМЕЧАНИЕ: 10.11 вы не можете вводить код в системные приложения.

Параг Бафна
источник
Пожалуйста, не могли бы вы предоставить bash, который я могу скопировать и вставить в мою оболочку. Это решение требует немалых усилий с литературой.
Самбест
4
Вы можете использовать DeathToDSStore.app
Parag Bafna
Есть ли решение 2019 года? Поскольку DeathToDSStore, похоже, больше не работает над последними
JKL
@JKL Я не знаю ни одного рабочего решения.
Параг Бафна
44

Пожалуйста, установите http://asepsis.binaryage.com/, а затем перезагрузите Mac.

ASEPSIS перенаправляет все .DS_Store на вашем Mac в /usr/local/.dscage

После этого вы можете рекурсивно удалить все .DS_Store с вашего Mac.

find ~ -name ".DS_Store" -delete
or
find <your path> -name ".DS_Store" -delete

Вы должны повторять процедуру после каждого крупного обновления Mac.

ои
источник
1
Обратите внимание, что для Mac OSX 10.10 необходимо обновить инструменты командной строки Xcode, а затем вручную запустить в терминале, например, root или с помощью sudo, следующую команду xcrun --find codesign. Вручную примите
условия
После каждого обновления системы требуется переустановка последней версии.
Myset
1
«В Asepsis реализован общесистемный демон asepsisd, целью которого является мониторинг переименований (или удалений) общесистемных папок и зеркалирование этих операций в папке префиксов». Это было написано на странице Asepsis. Действительно ли необходимо рекурсивно удалять файлы .DS_store?
vanguard69
«Пожалуйста, установите асептику». Пожалуйста, не могли бы вы показать мне некоторые команды bash, чтобы я мог просто скопировать и вставить их в свою оболочку?
Самбест
3
Есть еще способ заставить Асепсис работать при Эль Капитане. Я задокументировал шаги здесь: pixelcog.com/blog/2016/disable-ds_store-in-el-capitan
mikegreiling
41

ПРИМЕЧАНИЕ : «Asepsis больше не находится в активной разработке и поддерживается в OS X 10.11 (El Capitan) и более поздних версиях».


Вот полный обзор ваших вариантов. Asepsis (второе упомянутое решение) кажется тем, что вы ищете, он перенаправляет создание .DS_Store в унифицированный кеш, а не располагается в каждой папке.

мишель-SLM
источник
6
В случае, если ссылка когда-либо испортилась, на этом сайте перечислены два наиболее вероятных варианта: Asepsis (перенаправляет созданные файлы) и DeathToDSStore (предотвращает создание файла, отключение некоторых функций Finder), оба из которых описаны в ответах на этой странице. Другие варианты имеют дело с сетевыми дисками и внешними дисками - оба решают только часть проблемы.
мудрец
1
@emmanuel: Это действительно включает в себя основные части: название программы и функцию конкретной она обеспечивает , чтобы решить эту проблему.
Натан Тагги
23

Откройте Терминал. Выполните эту команду:

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

Перезагрузите компьютер или выйдите из системы и снова войдите в учетную запись пользователя.

для получения дополнительной информации:

http://support.apple.com/kb/ht1629

user3817989
источник
44
относится только к сетевым файловым системам
Дэвид П. Колдуэлл,
2

Поместите следующую строку в ваш файл .profile.

Откройте файл .profile и скопируйте эту строку

find ~/ -name '.DS_Store' -delete

Когда вы откроете окно терминала, оно автоматически удалит ваш файл .DS_Store для вас.

Shanaka
источник
9
запуск этого при входе в систему замедлил работу, поэтому я просто сделал этот псевдоним:alias nomore='find ./ -iname .DS_Store -delete'
BenjaminGolder
6
Вот это да. Такая хорошая идея. Не. [/ irony off] Представьте, что у вас много папок и много файлов .DS_Store, и представьте, что вы просматриваете все файлы, соответствующие .DS_Store, каждый раз, когда запускается ваша оболочка. Я знаю, что этот вопрос старый, но я подумал, что следует написать, что это не очень хорошая идея.
thonixx
3
Итак, [/ ирония выключена] выключает иронию или отключает иронию, заставляя ее включаться?
Коннор
Это отличный способ убить (продуктивное) время, пока Mac ищет сотни K файлов на диске.
Джавадба
-7

этот файл начинает появляться, когда вы выбираете, что система показывает вам скрытые файлы: $ defaults write com.apple.finder AppleShowAllFiles TRUE Если вы выполните эту команду, исчезните $ defaults write com.apple.finder AppleShowAllFiles FALSE Использовать терминал

Dgoncalves
источник
2
Вопрос состоит в том, как остановить создание файлов, а не как их скрыть.
Стив Бузонас
-7

функция

find ~/ -name '.DS_Store' -delete

, временно удалил файлы хранилища .DS. Но я не уверен, вернутся ли файлы обратно на Mac. Также я заметил кое-что своеобразное: «DS_Store» начинает приходить на Mac после установки «ATOM». Так что, ребята, пожалуйста, убедитесь, что вы правильно сканировали сторонние программы перед их установкой. Лучший

Замена
источник
5
Файлы .DS_Store создаются OSX Finder
Фран Марзоа
1
Вопрос в том, как остановить создание файлов. Этот ответ как их удалить. Кроме того, ATOMне создает файлы. FinderПриложение создает их при посещении папки для хранения значков позиций, выбранный вид папки, фоновое изображение и т.д. DS_Store, DS является Desktop Services.
Стив Бузонас
-12

Если вы хотите, чтобы .DS_Storeфайлы стали невидимыми (они все еще существуют, но их не видно), выполните следующую команду в окне «Терминал»:

defaults write com.apple.finder AppleShowAllFiles FALSE; killall Finder

Это позволит системе по умолчанию перестать показывать эти файлы на рабочем столе и в других местах. Он также перезапустит Finder, чтобы сделать это изменение видимым (особенно на рабочем столе).

Эдвард Грабчевски
источник
5
Это не отвечает на вопрос, который был задан.
никто не
Скрытие показа скрытых файлов не отменяет создание файлов .DS_Store, это вопрос, который был задан. Это ужасный ответ.
MattBoothDev
Вопрос в том, как остановить создание файлов. Это решение скрывает их (и другие файлы) только в Finder.
Стив Бузонас