Отключить хранение невидимых файлов «._» на моем сетевом хранилище cfs или smb

34

Я использую OS X Mavericks и у меня смонтированы некоторые накопители компании (с использованием smb или cfs). (кого - л: //username@address.path.toserver.com/directory/data). Когда я работаю с файлами на диске или копирую файлы на диск, создаются некоторые скрытые файлы. Большинство из этих файлов начинаются с точки-тире, ._а затем имя исходного файла, например:

._test001.png
._test002.png
._test003.png

И в большинстве случаев знаменитый ._.DS_Storeи .DS_Storeтоже есть.

На моем Mac эти .точечные элементы невидимы, но мои коллеги по Windows видят эти файлы. Как я могу запретить OS X делать эти странные невидимые файлы?

На support.apple.com (и других интернет-ресурсах) вы можете найти «запись по умолчанию», чтобы отключить создание файлов .DS_Store на ваших сетевых дисках. Но это не работает в Mavericks:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

На данный момент я использую этот oneliner, но rm -rfв этом случае делать что-то не так.

find . -type f -name "._*" -exec rm "{}" \;

Редактировать: я не хочу удалять файлы или исключать их из копирования. Я хочу, чтобы они не создавались в первую очередь.

Изменить: я предпочитаю «родное» решение OS X, чем сторонние приложения.

Изменить: На эти вопросы есть два ответа, один для файлов ._ и один для файлов .DS_Store. За это вознаграждение dot_clean, это собственное приложение командной строки очищает все ._ файлы. К сожалению, это не очищает файлы .DS_Store, это может быть эффективно сделано с помощью Asepsis. Asepsis хранит .DS_Stores в фиксированном месте, а не в самой папке.

CousinCocaine
источник
Я не уверен, что эти предложения решат вашу проблему, поэтому оставьте их в комментарии. 1. Попробуйте TinkerTool bresink.com/osx/TinkerTool.html и используйте Finder> «Не создавать скрытые файлы .DS_Store через сетевое соединение». 2. Попробуйте панель системных настроек Secrets Secretts.blacktree.com и снимите флажок Finder> Использовать .DS_Stores в сети.
@gentlemanhog, я попробую ваши предложения. Но я предпочитаю «родное» решение для OS X сторонним приложениям.
двоюродный брат Кокаин
@gentlemanhog, к сожалению, ваши решения не работают в Mavericks.
двоюродный брат Кокаин

Ответы:

31

Признаюсь, я не заметил, что defaults writeкоманда перестала работать в Маверикс. Тем не менее, когда я делаю чистое сетевое монтирование, вместо вашего одного лайнера, findи rmя использую это:

dot_clean .

Manfile объясняет:

dot_clean -- Merge ._* files with corresponding native files.

Я не использую флаг -m, но вы можете найти его полезным в вашей ситуации.

-m      Always delete dot underbar files.

Вот еще один человек, активно пытающийся остановить создание файлов .DS_Store: http://www.aorensoftware.com/blog/2011/12/24/death-to-ds_store/ - похоже, он не хочет, чтобы они были на дисках столько, сколько он не хочет их в сети!

evilblender
источник
Это правильный инструмент для работы. К сожалению, это решение является «установочным» монтажом и должно запускаться после монтажа. Асепсис работает лучше ( apple.stackexchange.com/a/136558/55028 ), но является сторонним приложением и работает только с файлами .DS_Store и работает только со всеми файлами .DS_Store при каждом монтировании.
двоюродный брат Кокаин
12

Только что попробовал, и это работает в Mavericks (по крайней мере для отключения .DS_Store, а не сетевых ресурсов):

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

Вам просто нужно помнить, чтобы перезапустить Finder:

killall Finder
dmuir
источник
1
Это не работает на El Capitan, для привода Samba. .DS_Storeфайлы все еще создаются
Себастьян
Это .DS_Storeне AppleDouble файлы, это просто «обычные» невидимые файлы, созданные Finder. Таким образом, просмотр этих файлов .DS_Store не является признаком того, DSDontWriteNetworkStoresработает или нет.
Томас Темпельманн
4

Эти ._файлы являются файлами AppleDouble, которые используются для хранения метаданных, таких как расширенные атрибуты, списки ACL, флаги файлов и вилки ресурсов.

Чтобы удалить их, запустите:

find . -name ._\* -delete

Вы можете видеть, имеют ли файлы расширенные атрибуты, ACL или флаги файлов с помощью ls -l@eO. Эти ._файлы обычно создаются , потому что файлы имеют расширенные атрибуты. Вы можете использовать xattr -cдля удаления расширенных атрибутов или chmod -Nдля удаления ACL. cp -Xи rsyncкопировать файлы без расширенных атрибутов, ACL, файловых флагов или разветвлений ресурсов.

LRI
источник
Я не хочу удалять файлы или исключать их из копирования. Я хочу, чтобы они не были созданы в первую очередь.
Кузен Кокаин
2
Если вы используете Finder, вы не можете предотвратить их создание.
Fyrefly
@Fyrefly, но вы можете создать их где-нибудь еще. См. Asepsis , apple.stackexchange.com/a/136558/55028 . Таким образом, «нативное» решение может быть возможным
CousinCocaine
3

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

Все, что вам нужно сделать, это отредактировать вашу конфигурацию общего ресурса (например, в Linux в /etc/samba/smb.conf) и добавить следующую опцию в конфигурацию общего ресурса:

veto files = /._*/.DS_Store/ 

Теперь никакие клиенты Mac не могут сохранять любые файлы с этими шаблонами в вашу общую папку.

cloudranger
источник
1
«Файлы вето» не препятствуют записи файлов, они не позволяют пользователям просматривать файлы. Пожалуйста, обратитесь к samba.org
Джастин Каттералл
1
У samba есть опция "delete veto files = yes", которая также удаляет их.
rwenz3l
1
К сожалению, delete veto files = yesне удаляет эти точечные файлы, он просто гарантирует, что вы можете удалить папку, содержащую файлы, которые были скрыты от просмотра этой veto filesопцией, поэтому он не выполняет то, что было после ОП (и то, что я тоже тщетно ищу для).
xmnboy
2

Я не пробовал это сам, и я понимаю, что OP предпочитает нативные решения, но тем не менее:

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

иней
источник
Это хороший инструмент для работы. К сожалению, это решение является сторонним приложением и работает только с файлами .DS_Store (не с файлами ._) и работает только со всеми файлами .DS_Store при каждом монтировании. Это хорошее решение, но не нативные и не ._ файлы и, следовательно, без награды. СРЮ.
двоюродный брат Кокаин
1

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

BlueHarvest

BlueHarvest автоматически удаляет файлы .DS_Store и ._ AppleDouble с ваших USB-ключей, SD-карт, музыкальных плееров, файловых серверов или любых дисков, не относящихся к Mac. BlueHarvest удаляет эти элементы по мере их создания или изменения, так что вы всегда будете свободны от метаданных без необходимости поднимать палец.

Никакой принадлежности, я просто успешно использую ее в течение нескольких лет.

Tetsujin
источник
0

Насколько я знаю, вы не можете предотвратить, что эти файлы будут созданы. По крайней мере, Finder создаст их.

Удаление этих файлов тоже не поможет - потому что в следующий раз, когда вы получите доступ к тому и его папкам на Mac, Finder создаст их снова.

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

Эти файлы помечены как «скрытые» по умолчанию и не будут отображаться, если в Windows настроено скрытие скрытых файлов и папок.

Мартин
источник
Я проверил, и они отключили «скрытые скрытые файлы». Но это не мешает им быть созданными. Я думаю, что есть способ исправить это, поскольку в OS 10.5 по умолчанию пишите com.apple.desktopservices DSDontWriteNetworkStores -bool true
CousinCocaine
Если они отключили (сняли флажок) «скрыть скрытые файлы», то это просто другой способ: включить его. :-) И, как я уже сказал: насколько я знаю, не существует "нативного решения для OS X". И еще: вы связались с ответом «support.apple.com», в котором говорится: «Отключение создания файлов .DS_Store на удаленных файловых серверах может привести к неожиданному поведению в Finder». И: Я бы не предлагал устанавливать приложения, которые обещают это предотвратить. Насколько я знаю, это может быть очень опасно.
Мартин
2
«это может быть очень опасно» :) Теперь я действительно хочу, чтобы эти файлы исчезли! Серьезно, файлы .DS_Store хранят свойства Finder, а испорченные файлы DS_Store действительно могут делать странные вещи. Я не хочу поврежденных файлов DS_Store, я не хочу файлов DS_Store. Я не боюсь их удалять. И вернемся к моему первоначальному вопросу: как я могу запретить OS X создавать эти странные невидимые файлы? И под этим я подразумеваю все ._ файлы и .DS_Store файлы. Ничего больше.
двоюродный брат Кокаин
Для меня (и может быть для вас) было бы полезно, если бы вы подтвердили, что люди включили (а не отключили) «скрытые скрытые файлы». И я могу понять, что вы не хотите, чтобы эти файлы были созданы, и что вы хотите собственное решение, но если нет собственного решения, то это не поможет сказать «но я хочу это».
Мартин
-1

Я нашел очень простой и бесплатный способ избавиться от go ._ файлов, особенно от внешнего fat32 HD.

Запустите OnyX (бесплатное программное обеспечение). Из утилиты, перейдите в AppleDouble, выберите ... папку. Это оно!!!

Мариано Рокки
источник
1
ОП совершенно определенно заявляет, что ему не нужен инструмент очистки, а тот, который вообще запрещает запись файлов.
Тецудзин