Удаление ._ файлов из файловой системы не Mac OS в Dropbox

732
Eric

Имея Macbook с ограниченным пространством, я приобрел портативный SSD-накопитель для хранения больших файлов и папку Dropbox. Это работает по большей части, однако я заметил, что когда я мигрировал в файловую систему на этом портативном ssd, у меня теперь было ТЫСЯЧИ из ._ файлов, по сути, от 1 до 1 ._ к реальному файлу / папке. Так что если раньше у меня был файл picture.jpg, то теперь у меня также был файл ._picture.jpg 0 байт.

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

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

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

0
Да, используйте Терминал: https://www.cnet.com/uk/news/terminal-fun-deleting-repetitive-files-in-os-x/ Richard 7 лет назад 0
Я просто использую `найти. -name "._ *" -print`, если все выглядит хорошо, измените его на `find. -name "._ *" -delete`. Обратите внимание, что в случае Dropbox вы должны остановить клиент и сначала удалить папку .dropbox.cache. Iskar 7 лет назад 0

2 ответа на вопрос

1
Eric

Я решил эту проблему первым делом, сделав полную копию моего Dropbox на другом диске. Это может занять много времени, по крайней мере для меня, потому что я постоянно консультируюсь с веб-сайтами клиентов, резервными копиями и т. Д., Что приводит к тысячам небольших файлов. С добавлением всех файлов ._ это удвоилось. Количество моих файлов было в диапазоне 300 000+. Однако после того, как вы сделаете резервную копию, мы можем продолжить.

Имейте в виду, этот план предполагает, что вы используете ТОЛЬКО съемный диск на Mac . Если вам нужно поделиться между файловыми системами, я сомневаюсь, что это будет работать. Я просто использую приложение Dropbox, чтобы управлять этим на других устройствах, вместо того, чтобы нуждаться в комплексной файловой системе.

  1. Закройте приложение Dropbox, если оно запущено.
  2. Сделайте резервную копию вашего дропбокса на другом диске (это может занять много времени) и будет содержать страшные файлы ._.
  3. Ради целостности, подтвердите свою резервную копию, возможно, используя утилиту / приложение сравнения папок.
  4. Отформатируйте ваш съемный диск в файловую систему Mac с журналом. Я использую Samsung Portable SSD T3 1 ТБ, отформатированный в защищенный раздел Mac OS Extenced (Journaled, Encrypted).
  5. Как только ваш новый том будет готов, откройте его в Finder.
  6. Скопируйте резервную копию в папку Dropbox
  7. Откройте Терминал вверх.
  8. Перейдите в папку Dropbox вашего нового тома, моя папка PSSSD / Dropbox, поэтому команда была:

    cd /Volumes/PSSSD/Dropbox

  9. Нервничая из-за того, что я собирался сделать с массовым удалением, я хотел получить «WhatIf» (ссылка на powershell), поэтому мы просто сделаем поиск без удаления. Мой список был огромен, поэтому я выбросил его в файл. Первая команда ниже выводится на терминал, вторая - в файл.

    find . -name '._*' find . -name '._*' > ~/Desktop/DropBox_filestodelete.txt

  10. Просмотрите список. У меня было много вещей в папке «.dropboxcache», в которых я не был уверен, стоит ли мне удалять или нет, но, играя в азартные игры, этот кеш будет просто восстановлен в случае необходимости, я решил пойти дальше и позволить ему удалить.
  11. Вот команда, которая найдет все с ._ в качестве начала файла. Обратите внимание, что если у вас есть важные файлы с таким же шаблоном, они будут удалены, и вам потребуется скопировать их из резервной копии, чтобы получить их обратно. «rm -fv» - это то, что удаляет файл, как он найден. F -fv - удалить без запроса ( опасно ), а v -fv - для подробного, потому что я хочу записать все файлы, которые я удалил, для справки.

    find . -name '._*' -exec rm -fv {} \; >> ~/Desktop/filesdeletedoutput.txt

  12. Эта команда удаления может занять некоторое время. Я на самом деле дважды останавливал свою работу с помощью CTRL-C, но после просмотра файла журнала обнаружил, что он все еще работает, и я просто находился в стационаре.
  13. Файлы журналов должны быть на вашем рабочем столе, если вы еще не поняли.
    Теперь запустите приложение Dropbox.
  14. Если вы использовали то же имя для отформатированного тома и папки, что и в предыдущей папке Dropbox, вероятно, Dropbox начнет «Синхронизацию» и «Индексирование».

Это займет некоторое время. У меня была проблема с перемещением папки Dropbox, когда я не мог выбрать папку с уже имеющейся папкой Dropbox, но каким-то образом мне удалось обойти это, отменив одно из предупреждений / приглашений и зайдя в Настройки / Предпочтения Dropbox.

В конечном итоге вы должны сделать Dropbox на прежнем уровне без всех надоедливых ._ файлов. Я снова предупреждаю вас при использовании rm -fv или rm-rf, так как он удалит без предупреждения, и я считаю, что нужно обойти мусорное ведро или мусорную корзину.

0
David Anderson

Операционная система macOS включает dot_cleanкоманду, которая обслуживает проблемы, описанные в вашем вопросе. Страница man из macOS 10.13.3 (High Sierra) приведена ниже.

DOT_CLEAN(1) BSD General Commands Manual DOT_CLEAN(1)  NAME dot_clean -- Merge ._* files with corresponding native files.  SYNOPSIS dot_clean [-fmnsv] [--keep=[mostrecent|dotbar|native]] [dir ...]  DESCRIPTION For each dir, dot_clean recursively merges all ._* files with their cor- responding native files according to the rules specified with the given arguments. By default, if there is an attribute on the native file that is also present in the ._ file, the most recent attribute will be used.  If no operands are given, a usage message is output. If more than one directory is given, directories are merged in the order in which they are specified.  OPTIONS -f Flat merge. Do not recursively merge all directories in the given dir. This is off by default.  -h Help. Prints verbose usage message.  -m Always delete dot underbar files.  -n Delete dot underbar file if there is no matching native file.  -s Follow symbolic links. This will follow symbolic dot underbar files when they are found.  -v Print verbose output.  --keep=mostrecent The default option. If an attribute is associated with a data fork, use that. Otherwise, use information stored in the Apple- Double file. Note that the native fork's data is preferred even if the data in the AppleDouble file is newer.  --keep=dotbar Always use information stored in the AppleDouble file, replacing any extended attributes associated with the native file.  --keep=native Always use the information associated with the data fork, ignor- ing any AppleDouble files.  EXAMPLES The following is how to do an dot_clean merge on the mounted volume test, always using the dot underbar information.  dot_clean --keep=dotbar /Volumes/test  DIAGNOSTICS The dot_clean utility exits 0 on success, and >0 if an error occurs.  BUGS None known.  BSD Sept 27, 2012 BSD