Як зупинити OS X від запису файлів Spotlight і Trash на карти пам'яті та USB-накопичувачі?


126

Підключивши USB-накопичувач до Mac, ОС X створює на ньому декілька прихованих файлів, зокрема індекс Spotlight та папку Trash.

Приклад з терміналу для USB-накопичувача "Без назви":

$ ls -a /Volumes/Untitled
.Spotlight-V100
.Trashes
._.Trashes
.disk
.fseventsd

Це навіть робиться на картці пам'яті xD для моєї камери, тому після копіювання моїх фотографій та видалення їх з картки карта залишається повною.

Чи можна вимкнути це для USB та карт пам'яті, тому OS X або записує ці файли на первинний диск, або взагалі не записує їх?


Коментарі не для розширеного обговорення; ця розмова переміщена до чату .
bmike

Відповіді:


20

ОНОВЛЕНО березень 2018 року. Здається, моє рішення вже не дійсне, рішення, яке працює зараз, запропонував @ElmerCat в одній з відповідей нижче.

Він пропонує використовувати CleanMyDrive 2

Застаріле рішення

Як я знаю, у вас є два варіанти:

  1. TinkerTool (безкоштовно)

alt текст

  1. BlueHarvest (комерційний)

alt текст


1
Добре, дякую. Я сподівався, що десь буде вбудована установка, але принаймні є рішення.
jg-faustus

3
@Philip: На жаль, Tinkertool займається лише файлами .DS_Store відповідно до їх детальної сторінки , що, імовірно, означає, що це єдиний прихований файл, який можна відключити через CLI - для інших файлів потрібні спеціальні інструменти. Але BlueHarvest виглядає приємно і робить все, що мені потрібно. (
Знайдемо

1
застаріла! пізніші відповіді кращі
Діма Тиснек

1
@ jg-faustus Не тільки Tinkertool має справу лише з файлами .DS_store, але це робиться лише для мережевих файлових систем
nhed

2
Випробував це. Tinkertool не працює на USB-накопичувачах (принаймні, 10,9)
pufferfish

106

Тільки для певного встановленого обсягу, як-от флешка, названа yourUSBstickв цьому прикладі, ці команди видалять існуючу суть, припинять індексацію Spotlight зараз і в майбутньому, припинять відповідні журнали fsevents та відключають функцію Trash.

mdutil -i off /Volumes/yourUSBstick
cd /Volumes/yourUSBstick
rm -rf .{,_.}{fseventsd,Spotlight-V*,Trashes}
mkdir .fseventsd
touch .fseventsd/no_log .metadata_never_index .Trashes
cd -

Інші незнайомі речі, які ви все ще можете побачити, напевно, хочете зберегти, як-от Apple подвійні "._ *" файли та інші Apple DS, що стосуються значків та розміщення вікон.


8
Хоча це може відключити індексацію, ці файли та каталоги все одно будуть знаходитись у томі (що в першу чергу є дратівливою частиною), і якщо ви видалите їх .Spotlight * і .fseventd повернуться. Насправді, .metadata_never_index це один більш запис в файл лістингу , ніж звичайний непотріб.
ShreevatsaR

1
+1, насправді я придумав ідею торкнутися сміття і поїхав сюди за кращим рішенням, але побачивши, що цей не міг протистояти +1. Це вирішує справжню проблему - відмовити автомобільний аудіо від відтворення пошкоджених файлів;)
Майкл Крелін - хакер

+1 знав, що це існує, але завжди мушу його знайти, коли мені це потрібно. Це корисно, якщо у вас більше доступу до USB-накопичувача, ніж до системи OSX.
млхДев

2
Дякую, я не знав про "CD -". Я все ще натискаю на pushd / popd :).
studgeek

Як щодо каталогу ".DS_Store"? Це все ще є. Будь-яка причина, чому це не було включено до рядка "rm -rf"?
Marnix A. van Ammers

30

Щоб увімкнути Spotlight від індексації несистемних томів, додайте / Томи до списку конфіденційності у розділі Налаштування системи> Прожектор.

/ Томи - це точка файлової системи, де всі несистемні диски встановлені за замовчуванням.

введіть тут опис зображення


неможливо додати / Томи в 10,8; однак можна додавати окремі томи по одному. Я підозрюю, що це схоже наmdutil -i off /Volumes/xxx
Діма Тиснек

15
@qarma Дуже можна додати / Томи через 10.8 або пізніших версій. Просто відкрийте вікно Finder, натисніть Shift+ Command+, Gщоб відкрити вікно "Перейти до папки ...", введіть /Volumes, а потім перетягніть маленький значок папки у верхній частині вікна Finder (поруч із словом "Томи") у вікно список на скріншоті вище
Chris Mukherjee

Мені доведеться спробувати це ...
Діма Тиснек

1
Ви можете додати /Volumes, це просто не працює.
kenny

1
На моїй машині вбудований жорсткий диск працює /Volumes/Macintosh HD, тому, якщо це спрацювало, чи не зупинило б це промінь Spotlight від індексації HD?
LarsH

17
  1. Вставте USB-накопичувач.
  2. Перейдіть до Macintosh HD > Applications > UtilitiesТерміналу та відкрийте його.
  3. У запиті Terminal введіть таку команду, замінивши path_to_volumeреальний шлях:

    sudo mdutil -i off /path_to_volume

  4. Натисніть повернення.

  5. Якщо з'явиться запит на введення пароля, введіть пароль адміністратора та натисніть клавішу return. Ви отримаєте відповідь:

    /path_to_volume/: Indexing disabled for volume. в Mac OS X 10.4 або

    /path_to_volume: Indexing disabled. під Mac OS X 10.5 або новішої версії.

    Прожектор негайно перестане індексувати вказаний об'єм.

  6. Якщо ви використовуєте Mac OS X 10.5 або новішої версії, перейдіть до кроку 9.

  7. У запиті Terminal введіть таку команду, знову замінивши правильний шлях:

    sudo mdutil -E /path_to_volume і натисніть return

  8. Якщо з'явиться запит на введення пароля, введіть пароль адміністратора та натисніть клавішу return. Ви отримаєте відповідь:

    /path_to_volume/: Volume index removed.

  9. У запиті на терміналі введіть exitпотім натисніть клавішу return.
  10. Вийдіть з терміналу.

Завдяки thexlab.com , їх усуненню несправностей електронних книг Mac OS X та їх веб-сайту для детального пояснення того, чому працюють інші методи.


1
Примітка. Sudo запитує пароль поточного користувача
user151019

Це працювало для мене. Використання диска Spotlight склало від 2 Гб до 200 Кб. Те, що прожектор займає стільки використання диска на порожньому диску, є безумним . Цікаво, чи зможемо ми поєднати це рішення та якийсь скрипт тригера на основі USB, який виявляє, який тип USB-пристрою є, і запускає цю команду автоматично. Будь-які ідеї з цього приводу?
Отей

15

Ще один спосіб попрацювати з (лише) файлами прожектора - додати цей об'єм до списку виключення прожектора. Підключіть пристрій і перейдіть до передпрозорої панелі Spotlight у налаштуваннях системи. Виберіть вкладку Конфіденційність. Тепер перетягніть цей обсяг зі свого робочого столу вгору до списку конфіденційності .. або скористайтеся кнопкою + внизу, щоб додати його. Більше не відбудеться індексація прожектора на цьому обсязі.


На жаль, томи видаються зі списку конфіденційності кожного разу, коли їх неможливо відключити. Тож це потрібно повторювати щоразу, коли ви знову підключаєте карту пам'яті або USB-накопичувач.
LarsH

9

2017 грудень

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

Тим не менш, розробники заповнили порожнечу численними програмами, затвердженими Apple. Програми, перелічені в попередніх відповідях, на той час могли бути хорошими, але вони не підтримували роботу з сучасними версіями macOS.

Я також трохи насторожився б встановити щось, що буде мати повний контроль над файловою системою, написане непізнаними розробниками. Не бажати мати справу з App Store - це одне, але не бажати реєструватися в Apple як розробника - це інше. Крім того, щось із AppStore пройшло принаймні мінімальний аудит від Apple, і його можна буде видалити з комп'ютера так само легко, як і встановити.

Тож, коли вам трапляється прочитати цю "відповідь", її порада вам - шукати в App Store щось актуальне, добре переглянене та безкоштовне.

TL; DR:

Мій вибір 20 грудня 2017 року - «CleanMyDrive 2» від App Store. Вирішує проблему, прекрасний інтерфейс, абсолютно безкоштовно. (Пропонуємо придбати в додатку спеціальні значки. Інакше все працює безкоштовно.)

Завтра може підійти щось краще, але суть полягає в тому, що в App Store є безкоштовні, прості рішення оригінального, але довготривалого питання jg-faustus, поставленого тут стільки років тому - питання, яке я мав сьогодні сам.

Тому я прошу вибачення, якщо це здається скоріше скандалом, ніж відповіддю, але насправді всі попередні відповіді застаріли і не привели до корисного рішення. Якщо не сказати, що щось призведе до того, що більше людей втрачає час, переймаючись терміналом або встановлюючи сумнівні програми. Просто перейдіть до App Store - платити вам не потрібно.


6

Я використовую командний рядок MacOS Terminal, щоб перелічити та видалити всі ці файли та папки перед тим, як вийняти пристрій з робочого столу. Для деяких файлів вам, можливо, доведеться застосувати команду / bin / rm.


Це я теж роблю. Хоча було б ще краще, якби мені не потрібно, тому я розслідую альтернативи.
jg-faustus

До речі, пристрій знайдено десь за адресою / Томи / <ім'я>
DerMike

4

Я використовую Clean Eject (безкоштовно) та користувальницьку службу Automator (все ще приватна), тому я можу призначити гарячу клавішу для очищення та вилучення гучності за допомогою програми.


Без доступу до служби автоматизації ви згадали, що ця відповідь насправді не дуже корисна. Чи можете ви поділитися послугою?
nohillside

Відповідь абсолютно корисна - ви можете користуватися програмою без дії Автоматизатор. Якщо ви хочете додати спеціальну клавішу швидкого доступу для Clean Eject, тоді у вас є маса варіантів: Альфред, Клавіатура Maestro. Дія Автоматизатора не є суттєвою, але корисною. Я завантажу його, коли зможу: gingerbeardman.com/services
Метт Сефтон

Служба, яку я використовую для очищення вилучення вибраних томів пошуку, тепер завантажується на сайт (див. Посилання вище).
Метт Сефтон

Дякуємо за завантаження, робить відповідь набагато повнішою.
nohillside

4

@ Повідомлення Майлза Лесі

та коментар @ qarma:

Ні, це все ще можливо навіть в OSX 10.9, але зараз потрібно зробити кілька додаткових кроків:

1) У Finder натисніть кнопку Go ( Далі), потім натисніть кнопку Go to Folder ...

2) Введіть / Томи та натисніть кнопку Перейти.

3) Відкриється вікно Finder, і вгорі воно повинно говорити " Томи ".

Це найважливіший крок:

4) Поруч, де написано " Томи" у верхній частині вікна Finder, є крихітний значок синьої папки. Клацніть та перетягніть цей значок ліворуч на панель вибраних .

5) Тепер у вас буде доступ до вашої папки «Томи» в будь-якому місці, у тому числі в налаштуваннях Spotlight, як, наприклад, запропоновано Miles Leacy. (Щоразу, коли вам це потрібно, просто натисніть на посилання Вибране, щоб вибрати його.)

Сподіваюся, це допомагає,

Найкраще,

Влад :)

~ ~ ~

Як додати папку "Томи" у вибране, щоб ви могли отримати доступ до неї в налаштуваннях прожектора

~ ~ ~

Як це виглядає після додавання папки «Томи» до списку винятків у центрі уваги:

Помітьте на задньому плані, що ви можете побачити мій пост у Safari. ;)

Як це виглядає після додавання папки «Томи» до списку винятків Spotlight


1
FWIW, я вважаю, що це прекрасна відповідь і не потрібно залишати коментарі. Я б видалив цю частину з неї і залиш її такою, якою є.
Марк Едінгтон

Оскільки Mac HD - це підпапка «Томи», чи не відключить це прожектор на Mac HD?
LarsH

@LarsH Добре запитання. Мені не подобається прожектор, і він повністю відключений на моєму комп'ютері сьогодні, тому я не впевнений. : 3
Володимир

3

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

Інший варіант - натиснути Cmd-Opt-Shift-Backspace, щоб змусити Finder спорожнити вміст .Trashes на картці, перш ніж вийняти його.

Перший спосіб дійсно найкращий, оскільки другий впливає на весь вміст кошика на всіх дисках.

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


3

Тепер MacOS надає цей прямий прапор, який ви можете перемикати з терміналу:

defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true

1
Гарна відповідь на частину питання. Це вимикає DSStore, але питання стосувалося конкретно файлів Trash and Spotlight, про які у вашому рішенні (з того, що я можу прочитати) нічого не стосується.
Отей

2

Простий спосіб зупинити звук автомобіля, намагаючись прочитати приховані файли Mac OS - це видалити їх в ОС Windows. Просто скопіюйте музику MP3 на USB-накопичувач з iTunes. Помістіть палицю в ОС Windows і виберіть перегляд прихованих файлів із параметрів папки. Після цього ви зможете видалити кожен прихований файл, який ваш надійний Mac розмістив на USB-накопичувачі, включаючи прикрі файли .trashes. Нарешті, використання для ОС Windows!


+1 Це трохи втомливо, але впевнено, чому б ні, це справді спрацює ха-ха.
Володимир

2

Я закінчив користуватися безкоштовним додатком " Прихований очищувач ". MP3-плеєр мого автомобіля намагався прочитати. (MP3namename) .mp3 (порожні, порожні файли mp3). Перейдіть до Macintosh HD у розділі "Пристрої" у лівому меню Finder та перетягніть USB-накопичувач та перейдіть на додаток Hidden Cleaner. Він очистить порожнисті файли та залишить справжні MP3-файли та вилучить ваш USB.

Примітка. Це не є постійним рішенням. Ви повинні робити це вище кожного разу, коли ви копіюєте файли. Я не проти, хоча.


Ще одна подібна програма: Eject for Windows www011.upp.so-net.ne.jp/decafish/EjectForWindows/…
Vinicius Pinto

Що стосується гри з файловою системою, не доцільно довіряти свій комп'ютер непізнаним розробникам. Я просто говорю.
ElmerCat

2

Старе питання, але я, нарешті, виявив Асепсис . Це утиліта з відкритим кодом , яка вирішує цю вікову проблему, обмежуючи всі .DS_STOREкаталоги в одному місці, за замовчуванням /usr/local/.dscage
Після встановлення та перезавантаження, не більше .DS_STORE на USB-накопичувачах, з перевагою (для деяких з нас) не необхідність відключення індексації на зовнішніх накопичувачах. З версії 1.4 він також підтримує OS X Mavericks.

Оновлення на веб-сайті Aepsis: "Попередження: Asepsis вже не перебуває під активною розробкою та підтримується в ОС X 10.11 (El Capitan) та пізніших версій.


Класно! Цікаво, як ця програма впорається з збоєм системи або надзвичайним завантаженням процесора. Іншими словами, мені цікаво, чи буде дискринізація ставитись автоматично, чи потрібно буде зробити це для себе? Автоматично добре, тому що нам не потрібно про це турбуватися, але це також означає, що програмі доведеться зробити набагато більше перевірок.
Володимир

2

Більшість рішень тут - «очищення точкових файлів перед вилученням», а не «попередження створення dotfile».

У моєму пошуку безкоштовного рішення для колишнього я спробував кілька варіантів, і зупинився на яблучному скрипті тут: SuperUser: Хтось має сценарій Mac Terminal для видалення прихованих файлів? бо це дозволяє мені точно бачити, що відбувається на цьому шляху.

Зауважте у своєму коментарі до цієї відповіді, що я зробив невелику редагування, щоб він працював на OSX 10.12.1. (Я не репоную джерело в цьому випадку, оскільки це здається досить "посиланням на посилання").


2

Найглуміша річ, що я не можу просто внести це у відповідь Metaxis. Але легко створити сценарій bash, який автоматично обробляє це для всіх папок у / Volumes (або конкретному, якщо ви вказали). Якщо матимуть можливість викликати його за допомогою Automator або Applescript, коли папка відображається в розділі / Volumes, тоді у вас є автоматичне відключення індексації.

#!/bin/bash

if [ -n "$1" ]; then
    if [ ! -e "${1}/.metadata_never_index" ]; then
        echo "mdutil -i off $1"
        mdutil -i off "$1"
        cd "$1"
        rm -rf .{,_.}{fseventsd,Spotlight-V*,Trashes}
        mkdir .fseventsd
        touch .fseventsd/no_log .metadata_never_index .Trashes
    fi
else
#    echo "finding Volumes"
    find /Volumes -type d -maxdepth 1 -mindepth 1 -print0 | xargs -0 -n 1 "$0"
fi

0

Я знайшов цю програму в Apple App Store безкоштовно і користуюся нею, і вона чудово працювала для мене. Вам потрібно шукати "cleanusbdrive" всім одним словом без лапок в App Store.

Це Хосе А. Жименес Кампос.




-1

Я отримав це для роботи над Sierra 10.12.3 в Automator.

По-перше, я створив цю версію сценарію: він функціонує так само, як і freefly42, просто інший спосіб написання тієї ж речі.

Для перекладу для немовних динаміків баш-класів це:

Якщо запустити аргумент командного рядка, він намагається перевірити, чи аргумент є каталогом, і чи містить цей файл файл з назвою ".disable_osx_metadata".

Якщо спеціального файлу немає, то нічого не відбувається. Цей привід ігнорується.

Якщо спеціальний файл є там, скрипт видаляє всі метадані osx та створює кілька невеликих нових елементів, що заважає нічого іншого. Наприклад, створення файлу з назвою .Trashes заважає ОС створити каталог з назвою .Trashes, а потім записати файли туди.

Якщо запустити без аргументів, він запускається один раз для кожного каталогу в / Томах.

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

#!/bin/bash
x=.disable_osx_metadata
[[ "$1" ]] || exec find /Volumes -type d -maxdepth 1 -mindepth 1 -exec $0 {} \;
[[ -e "$1/$x" ]] || exit 0
mdutil -i off "$1"
rm -rf "$1"/.{,_.}{fseventsd,Spotlight-V*,Trashes}
mkdir "$1/.fseventsd"
touch "$1/.fseventsd/no_log" "$1/.Trashes" "$1/$x"

Збережіть як "enable_osx_metadata", chmod 755, скопіюйте в / usr / local / bin.

$ cd Documents/disable_osx_metadata/
$ chmod 755 disable_osx_metadata
$ sudo cp disable_osx_metadata /usr/local/bin

Потім відкрийте Automator, New, Folder Action

Потім я виявив, що навіть в Sierra 10.12.3 ви все ще можете додати каталог / Volumes в Automator, неочевидним чином.

Перейдіть до Finder, File, "Go to Folder ...", вручну напишіть у "/ Volumes" та натисніть Enter.

Тепер це показує вам вікно з вашими HD та usb-накопичувачами, але жодної очевидної папки "/ Volumes" для натискання. Але на заголовку вказується "/ Томи", і він відображається внизу.

Ви можете перетягнути піктограму папки поруч із пунктом "/ Томи", або з рядка заголовка, або знизу, до Автоматизатора, і перетягнути його на "Дія папки отримує файли та папки, додані до: [______]"

Перетягніть / обсяги з рядка заголовка Finder

Закрити Finder.

Назад до Автоматизатора: ліворуч прокрутіть вниз і перетягніть праворуч «Отримати вміст папок» та опустіть його.

Потім ліворуч прокрутіть вниз і перетягніть «Запустити скрипт оболонки» праворуч і опустіть його нижче «Отримати вміст папки».

Змініть "Передати введення:" на "як аргументи". Shell: [/ bin / bash] Передати введення: [як аргументи]

Потім перетягніть скрипт з / usr / local / bin у поле під заголовком "Запустити скрипт оболонки", щоб він написав "/ usr / local / bin / disabled_osx_metadata"

Файл, збереження, вимкнення_osx_metadata.workflow

Робочий процес дій папки автоматизатора

Для довідки, це зберігається у: / Користувачі / YOUR_NAME / Бібліотека / Робочі процеси / Програми / Дії папок. Якщо ви щось збережете не так, я думаю, що вам потрібно буде вручну переміститися там у Finder, щоб видалити його.

Нарешті, для кожного нового накопичувача USB, який ви хочете захистити, ви повинні створити файл з назвою ".disable_osx_metadata" у кореневій папці.

Ви можете це зробити в терміналі: $ touch / Томи / НІ \ ІМЕ / .disable_osx_metadata

Або просто збережіть невеликий текстовий файл навколо з видимим іменем (без провідної точки) та скопіюйте його у корінь будь-якого нового накопичувача usb та перейменуйте його .disable_osx_metadata після копіювання.

Цей привід зараз очищається щоразу, коли ви його приєднуєте відтепер.

Не так чисто, як хотілося б. Ви повинні трохи забруднити накопичувач, щоб сказати ОС не забруднювати його більше. Здається, немає можливості змусити ОС просто залишити її в спокої і не додавати файли, які ви не просили.

TODO: Додайте функції увімкнення / вимкнення для створення / видалення точкового файлу

TODO: Це не запобігає .DS_Store файлів у кожному каталозі.

TODO: Чи можливо упакувати сценарій та файл foo.workflow, щоб користувач міг пропустити більшість цих інструкцій? Я бачу, що в Автоматизаторі є опція "експорту", яка створює певний файл пакету.

TODO: Можливо, застаріла вся ця публікація. Цей робочий процес Applescript + автоматизатора може бути кращим: https://superuser.com/questions/319553/does-anyone-have-a-mac-terminal-script-to-remove-hidden-files/814104#814104

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