Чи є спосіб запобігти створенню цих примхливих .DS_Store файлів?


14

Чи існує спосіб (наприклад, бінарний злом у Finder), щоб зупинити його від створення .DS-магазинів у локальних томах?

Я використовую Leopard, тому вони не працюють:

Також BlueHarvest уповільнює роботу мого комп'ютера.


1
Див.: Заборона MacOS створювати файли. * Та ._ * - будь-яка конкретна причина, чому ви не хочете цих
slhck

@slhck: blueharvest працює, але сповільнює роботу комп'ютера. Я шукаю що - щось на зразок цього
kinokijuf

Я забув, що TotalFinder працює лише на ≥ 10,6, вибачте.
slhck

Це питання було б занадто локалізованим, якби воно було специфічним для Леопарда і раніше. Відповіді можуть просто згадати поточну найнижчу або найвищу підтримку версії, де це стосується.
Lri

Відповіді:


3

Сторонні рішення

На мій досвід, BlueHarvest найкращий у класі. Технічно це не відповідь на питання; він може видалити, але не запобігти .DS_Storeфайлам.

Якщо BlueHarvest ефективний, але не відповідає вашому випадку використання, важко дати прийнятну відповідь на ваше запитання.

Якщо у вас немає прийнятного рішення сторонніх розробників, ви повинні працювати з тим, що є інтегральним для Leopard ...

Без стороннього рішення: стримуйте використання Finder

Уникаючи переглядів, які ви не бажаєте зберігати, ви можете запобігти створенню .DS_Storeфайлів.

Більшість користувачів буде важко стримувати себе таким чином, але це правдива відповідь в межах обмеженого питання.

http://diigo.com/0qiwp для пояснення http://lists.apple.com/archives/applescript-users/2006/Jun/msg00180.html, де пояснюється Метт Детірадж (колишній інженер Apple) .DS_Storeта інші типи файлів.


6

Я не знайшов жодного способу запобігти їх створенню, але ви можете видалити їх автоматично за допомогою сценарію:

#!/bin/sh

find ~ -name .DS_Store -exec /bin/rm -f -- {} \;

exit 0

Запускайте його кожні X хвилин через launchdабо cron. Працювати на моєму багаторічному iMac майже не потрібно часу. Він здійснюватиме пошук лише у вашому $ HOME (~), але саме там більшість з них буде. Змініть ~ на / якщо ви хочете видалити їх на всьому диску, але це запустить набагато більше часу, тому відповідно регулюйте частоту.


1
Ви також можете використовувати find ~ -name .DS_Store -delete. І не забувайте -nameпрапор - без нього команда застосовуватиметься до всіх файлів у ~та ./.DS_Store.
Лрі

1
Я знаю, що можу використовувати сценарій, але ваша відповідь не відповідає на його запитання.
kinokijuf

Відповідь на питання "ні". Не існує способу запобігти їх створенню (за винятком мережевих акцій, що також не було питанням). Ця відповідь намагається досягти такого ж кінцевого результату. Якби у SE була категорія відповіді під назвою "Обхід", я б поставив її під цю. Це, звичайно, не гірше "відповіді", ніж демон, що приєднується до рамки (< asepsis.binaryage.com/> ), і набагато безпечніше, ніж злом в системний бінарний файл, і він працює на будь-якій версії Mac OS X.
TJ Luoma

За винятком того, що він не досягне того самого кінцевого результату. Blueharvest - це кращий спосіб подолання (той же кінцевий результат, окрім того, що на комп’ютері працює свиняча свиня). Також асепсис є драйвером IIRC.
kinokijuf

1
@kinokijuf, відмовтеся від правильного ставлення. Коли хтось пропонує вам безкоштовну допомогу, ви не критикуєте її. Справедливо одного разу просто заявити, що це не те, чого ви шукаєте, але захист TJ Luoma (яку ви зробили сумно необхідною) є більш ніж достатньою підказкою, щоб ви заткнулися. Jeez.
r_alex_hall

4

Щоб запобігти появі цих некрасивих .DS_Store файлів, можливо, є порівняно новим варіантом зробити це чисто, не тільки для мережевих накопичувачів:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

але також і для USB-томів:

defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true

Що стосується заголовка питання щодо ОП, це найкраще рішення без злому, оскільки воно стосується не тільки поведінки в мережі, але й для більшості підключених дисків. І це може бути найбільшим роздратуванням для більшості користувачів, які діляться пристроями, такими як USB-накопичувачі між різними середовищами. Він використовує лише передбачені Apple опції і жодним чином не перешкоджає нормальній роботі.

Щодо конкретної ситуації, поясненої в корпусі ОП, вона має обмежене значення, оскільки ця опція USB доступна лише в пізніших версіях OS X / macOS. Далі, це все ще не вирішує проблему .DS_Storeстворення на внутрішніх дисках, де вони також можуть мати зайві труднощі. Хоча в цьому місці вони насправді можуть служити якійсь меті.

Більш комплексне рішення цієї проблеми, хоч і більш хакітне, що працює на більшості версій операційної системи Mac, полягає в наступному: Повністю занурити цю неприємну поведінку на всіх дисках - і з двійковим патчером / інжектором коду, як питання про ОП прагне - є DeathToDSStore / з джерелом .

Обидва ці параметри передбачають, що хтось все ще використовує Finder ... Використання іншого файлового менеджера також вирішить цю проблему. Існує чимало претендентів на заміну Finder для управління файлами на macOS. Дві найкращі собаки в цій галузі - Pathfinder або XFile .


2
+1 для команди USBStores (я цього не знав!), А також DeathToDSStore.
Wowfunhappy

3

Спробуйте цю команду: за замовчуванням запишіть com.apple.desktopservices DSDontWriteNetworkStores true у термінал. Здається, це працює для мене.


4
Він працює лише для мережі, а не для локальних томів.
kinokijuf

Ви праві. Прошу вибачення за свою плутанину.

4
Це єдиний реальний випадок, коли я міг бачити, як дратує .DS_Stores. Вони за замовчуванням сховані в Mac OS і мають вирішальне значення для збереження налаштувань перегляду для окремих папок
Alexander - Відновіть Моніку

2
Але я не хочу зберігати налаштування перегляду.
kinokijuf

1

Я створив більш ефективний скрипт (призначений для запуску безперервно як демон), він виконає одне виконання findна початку, щоб стерти вже наявні файли, і він буде ловити нові файли в режимі реального часу через fsevents. Таким чином, вони будуть негайно задіяні під час створення, а використання ресурсів дуже низьке. AFAIK - це найкращий спосіб позбутися від них, не відключаючи SIP.
Ось це - https://github.com/magicgoose/DS_Store-Kill

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.