Хтось має сценарій Mac Terminal для видалення прихованих файлів?


10

Мій автомобільний стереосистем може відтворювати музику з флеш-накопичувачів USB, тому я запитав про копіювання MP3-файлів із списку відтворення iTunes . Це працювало чудово, але мій стерео не відтворював MP3-файли. Зрештою я поставив флешку в робочий комп'ютер під управлінням Windows 7, і знайшов проблему: ._[filename].mp3також було завантажено купу прихованих файлів у форматі .

Я знаю, що в Windows ви можете видаляти файли на основі атрибутів, і мені було цікаво, чи можете ви зробити те ж саме в Терміналі? Можливо, зі скриптом, який я можу запустити з томом як параметр?


У мене була точно така ж проблема. Якщо файли ._ там, де мій стерео, сказав би "Bad Media", що було абсолютно неправильно. Він буде відтворювати правильно названі файли, але скаржився на кожен ._ файл. Мені знадобилось певний час, щоб перевірити, чи ЗМІ не погано, автомобільний стерео був!
Ерік

Але це не винна стереосистема, що це смокче ... Лол. Я просто помістив його в свій комп’ютер Win7, щоб увімкнути музику на роботі, і побачив їх усі: Купа прихованих файлів, по 4 КБ кожен
канадський Люк

Автомобільна стереосистема повинна ігнорувати ці файли. У вашому випадку вони не містять необхідної інформації. Але скрізь однакова проблема. Мій медіаплеєр DLNA показує це також під час перегляду.
slhck

Відповіді:


21

Ці файли приховані в OS X, тому що вони починаються з, .а тому не відображаються у Finder за замовчуванням. У цих файлах немає спеціального атрибуту, окрім цього.

Дуже спрощеним підходом було б видалення всіх файлів, які починаються з крапки і підкреслення:

find /Volumes/<your-volume-name> -name '._*' -type f -delete

Примітка безпеки: Запустіть це без того, -deleteщоб побачити, які файли буде видалено. І ніколи цього не робіть на всьому Mac HD, лише на USB-накопичувачі.


Для отримання додаткової інформації: Ці файли називаються "Forks Forks" і іноді містять інформацію, яку ви не хочете видаляти. У вашому випадку використання, але це повинно бути добре. Ви можете назавжди відключити створення цих файлів за допомогою BlueHarvest . Також є додаток, який претендує на очищення об'ємів, але я не пробував це, і це бета-версія, тому використовуйте з обережністю: Hidden Cleaner .


Не усвідомлював цього ... Добре знати. Я спробую це сьогодні ввечері, коли повернусь додому, тоді позначте вашу відповідь. Спасибі
канадський Люк

8

Ще одне рішення, яке працювало для мене (MacOS 10.6.8) у термінальному типі:

dot_clean "/Volumes/<your-volume-name>"

3

У мене була та сама проблема з моїм автомобільним стерео, 1 файл / 2 не підлягає програванню, тому що програвач вважає, що точковий файл, створений MAC OS, є музичним файлом ... Тоді я вважав цю публікацію дуже корисною, дякую.

Тому я повертаюся зараз із покращеним та безкоштовним рішенням для Mavericks:

  1. Створіть додаток Automator для запуску сценарію AppleScript
  2. Скористайтеся цим сценарієм:

    on run {input, parameters}
        try
            tell application "Finder" to set allDrives to the name of every disk whose local volume is true and startup is false
            set driveName to {choose from list allDrives with title "DiskCleaner" with prompt "Disk to Clean and Eject:" OK button name "Clean and Eject" cancel button name "Abort"} as text
            set getDriveIdentifier to "diskutil info " & quoted form of driveName & " | grep Ident | awk '{print $3}'"
            set driveIdentifier to do shell script getDriveIdentifier
            try
                do shell script "find /Volumes/" & quoted form of driveName & " -name '.DS_Store' -type f -delete"
                do shell script "find /Volumes/" & quoted form of driveName & " -name '.FBC*' -type f -delete"
                do shell script "find /Volumes/" & quoted form of driveName & " -name '._*' -type f -delete"
                do shell script "rm -rf /Volumes/" & quoted form of driveName & "/.{,_.}{fseventsd,Spotlight-V*,Trashes}"
                display notification "Disk Cleaned"
            on error
                try
                    do shell script "sudo find /Volumes/" & quoted form of driveName & " -name '.DS_Store' -type f -delete" with administrator privileges
                    do shell script "sudo find /Volumes/" & quoted form of driveName & " -name '.FBC*' -type f -delete" with administrator privileges
                    do shell script "sudo find /Volumes/" & quoted form of driveName & " -name '._*' -type f -delete" with administrator privileges
                    do shell script "sudo rm -rf /Volumes/" & quoted form of driveName & "/.{,_.}{fseventsd,Spotlight-V*,Trashes}" with administrator privileges
                    display notification "Disk Cleaned"
                on error
                    display notification "Can't Clean, Permission Denied"
                end try
            end try
            delay 1
            try
                do shell script "diskutil eject " & driveIdentifier
                display notification "Disk Ejected"
            on error
                display notification "Can't Eject, Disk in Use"
            end try
        on error
            display notification "No Disk to Clean and Eject"
        end try
    end run
    
  3. Збережіть програму, наприклад, DiskCleaner.app

Цей скрипт попросить обрати USB-диск для очищення та вилучення. Тоді він очистить USB-диск (намагається з адміністраторськими обліковими записами, якщо вони не вдалися до поточних), а потім видалити, якщо можливо.

Звичайно, є ще дещо для вдосконалення, я робив цей сценарій для себе!

Також у вас є можливість додавати кодові рядки для очищення більшої кількості файлів.

Насолоджуйтесь!


Це дійсно корисно, чи можете ви розмістити повний робочий процес Автоматизатора?
Конрад

Дивовижне, велике спасибі! Працює для мене на OSX10.12.1, якщо я видаляю {input, parameters}з рядка 1 (залишаю лише on run). @Konrad: я відкрив "Редактор сценаріїв", зробив вищезгадане редагування та зберег у / Додатки як додаток; робота виконана. Мені подобається бачити, що саме відбувається, що складніше з іншими безкоштовними рішеннями.
птім

Дякую. Я спробував твій сценарій. Коли я запустив його з програми «Автоматизатор», щоб перевірити його, я натиснув опцію «перервати» в діалоговому вікні вибору диска, і все ще отримав підказку sudo та повідомлення про невдачу вийняти диск. Я думаю, що це потрібно виправити. Я б запропонував вам піти трохи далі у своїй відповіді, пояснивши, як протестувати та налаштувати скрипт, який можна використовувати у меню послуг у Finder.
Марк Едінгтон

2

Ви також можете використовувати Automator, щоб виконати те саме, якщо термінал вас налякав:

Видаліть ._ *. Mp3 в робочому процесі автоматизатора.


Термінал мене не лякає, якщо я не заробляю rm -rf / і натискаю Enter: P Але я хотів би навчитися Automator, виглядає круто
канадський Лука

Ага, так, це теж гарна ідея.
slhck

Чи корисні тут елементи вибраного пошуку?
Даніель Бек

Не зовсім. Я був на чужому Mac і мусив поспішно працювати.
digitxp

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