Есть ли способ предотвратить создание Mac файлов подчеркивания точек?

На работе мы позволяем одному из наших очень технически подкованных клиентов немного помочь с несколькими специфическими для него проектами развития. Однако он использует собственный персональный Macbook, и, редактируя файлы в наших сетях (Windows), его Macbook всегда создает кучу ненужных метафайлов, которые мы в конечном итоге удаляем позже.

Например, он создает файл с именем.DS_Store в любом каталоге, который он открывает, а также файлы с "точечным подчеркиванием" для каждого редактируемого файла. Например, если он редактирует файл с именем "Main.php", его Macbook создаст другой файл с именем "._Main.php".

Я знаю, что есть способы предотвратить создание файлов.DS_Store, но нет ни одного способа предотвращения создания этих скрытых файлов с префиксом точка-подчеркивание.

Есть ли способ отключить это на Mac? Есть ли способ предотвратить создание этих файлов?

9 ответов

Решение

Пусть ваш пользователь Mac установит BlueHarvest.

Голубой урожай

На файловых серверах Linux или устройствах NAS вы можете использовать следующее:

Вариант A. Изменение конфигурации Samba, предотвращающее использование как общих ресурсов, так и файлов.DS_Store:

файлы вето = /._*/.DS_Store/

удалить файлы вето = да

(Файл конфигурации находится по адресу /etc/samba/smb.conf или /etc/smb.conf в зависимости от вашего дистрибутива). Недостатки: не все общие ресурсы предоставляются системами NAS под управлением Linux, или в большинстве случаев у вас нет доступа к оболочке.

Вариант Б. Создайте простой сценарий оболочки и запустите его на одном из подключенных компьютеров, используя cron.

find /YourNetworkShareLocation -name '._ *' -exec rm {} \;

Замените /YourNetworkShareLocation на то, где смонтирован сетевой ресурс, например / Volumes / ShareName или / media / ShareName и т. Д.

Недостатки: это грубый путь - ненужная нагрузка как на хранилище, так и на сеть. Тем не менее, то же самое можно легко сделать в Windows, используя немного волшебства PowerShell.

Отказ от ответственности: это не то, что я называю "решением", это взломать. Но это может помочь кому-то снизить уровень раздражения, предоставляемый файлами ветвления ресурса.

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

В OS X lion этот метод должен разрешать доступ по умолчанию к ~/Library без изменения настроек или нажатия ALT.

я использую MuCommander на Snow Leopard а также Lion и заметил, что ни HFS+ или же ExtFat тома в конечном итоге завалены файлами с этими файлами.

Люди: есть еще одна проблема, Размер файла... многие из вилок ресурсов имеют размер не менее 4096 байт, даже если исходный файл имеет размер менее 4096 байт, поэтому устранение этой проблемы помогает при раздутии файловой системы.

(Например: загрузите текстовый файл: http://www.gamers.org/pub/games/idgames/levels/heretic/g-i/horror.txt на Mac и убедитесь сами)

Пусть он заглянет в бесплатное и удачно названное приложение Cleanup SMB Mess. Разработчик говорит:

Эта капля яблочного скрипта очистит общие папки Windows, смонтированные через клиент samba для Mac OS X, удалив все файлы "._*", файлы.DS_Store и папки.Trashes на всех томах и папках, перетаскиваемых на нем ".

Я использовал только с флэш-накопителями и MP3-плеерами, и он делает то, что говорит. Я предполагаю, что это должно сканировать устройство, чтобы удалить мусор, и это может быть громоздким на большом сетевом ресурсе. Но это только предположение с моей стороны. Я бы предложил спросить разработчика.

Если вы хотите просто вручную удалить эти ._файлы, нет необходимости во внешних утилитах или сложных командах поиска. В вашем терминале просто запустите

dot_clean /path/to/where/you/want/to/clean

Обратите внимание, что это рекурсивно, поэтому вам не нужно вручную заходить в подкаталоги.

Вы даже можете настроить задачу cron для автоматизации этого. В вашем терминале запустите

crontab -e

Затем в открытом редакторе введите это и сохраните:

0 0 * * * dot_clean /path/to/where/you/want/to/clean

Это будет автоматически запускаться каждый день в 00:00. Посетите https://crontab.guru/, если хотите узнать, как создать задачу cron.

Вы также можете использовать приложение Mac в магазине приложений под названием " Annoying File Be-Gone", которое работает на панели инструментов и хорошо работает.

На моем QNAP NAS конфиг samba в /etc/smb.conf уже содержал это:

veto files = /.AppleDB/.AppleDouble/.AppleDesktop/:2eDS_Store/Network Trash Folder/Temporary Items/TheVolumeSettingsFolder/.@__thumb/.@__desc/:2e*/.@__qini/.Qsync/.@upload_cache/.qsync/.qsync_sn/.@qsys/.digest/
    delete veto files = yes

поэтому я отредактировал строку с файлами вето:

veto files = /._*/.AppleDB/.AppleDouble/.AppleDesktop/:2eDS_Store/Network Trash Folder/Temporary Items/TheVolumeSettingsFolder/.@__thumb/.@__desc/:2e*/.@__qini/.Qsync/.@upload_cache/.qsync/.qsync_sn/.@qsys/.digest/

и затем перезапустил samba (это примитивная система Linux, поэтому я сделал это через init.d):

/etc/init.d/smb.sh restart

Есть утилита под названием "асептика"

он также имеет функцию очистки вашего Mac от файлов.DS_Store и так далее, читайте FAQ

http://asepsis.binaryage.com/

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

Вы также можете попробовать использовать TinkerTool ( http://www.bresink.com/osx/TinkerTool.html) - он использовался для выставления этого параметра.

Это действительно легко, и вам не нужно ничего устанавливать.

  1. Открытый прожектор (cmd+ пробел)
  2. Введите "Terminal.App"
  3. И нажмите Enter (Это должно открыть приложение терминала)
  4. Скопируйте это в свой clipbpoard (cmd+c):

    по умолчанию напишите com.apple.desktopservices DSDontWriteNetworkStores true

  5. и вставьте его в терминал (cmd+p)

  6. нажмите Ввод
  7. закрыть терминал (cmd+Q)
  8. В следующий раз, когда вы перезапустите Finder, ваш Mac перестанет записывать файлы DS в сетевое хранилище.

Ссылка: http://support.apple.com/kb/HT1629

Другие вопросы по тегам