Как исправить серые файлы в Finder?

13

Есть ли способ заставить Finder обновить информацию об использовании серых (недоступных) файлов?

Детали:

Я перемещаю редко используемые файлы с моего Mac (OS X 10.6) на файловый сервер Windows Server 2008. Недавно я обнаружил большое количество файлов, которые в Finder OS X отображаются серыми (как если бы файл находился в процессе копирования). Все рассматриваемые файлы действительны и полны: нет повреждений или недостающих данных; На самом деле, я могу без проблем получить доступ к файлам из Терминала или с компьютера под управлением Windows, но Finder все еще считает, что их следует считать недоступными.

Я могу «исправить» проблему, скопировав исходный файл с новым именем, удалив исходный файл, подождав минут или около того, а затем переименовав новый файл в исходное имя (если я не буду ждать достаточно долго, новый файл станет серым, когда он будет переименован в исходное имя).

По сути, создается впечатление, что Finder не смог очистить какой-либо флаг «используется» или «неполный» [гипотеза].

Итак, вернемся к первоначальному вопросу: как это можно исправить? В идеале я хотел бы иметь возможность сканировать сетевые диски и находить и исправлять все серые файлы с помощью терминала или рекурсивной операции, чтобы я мог исправить их все, не теряя много времени.

Роберт Альтман
источник
Это связано с разрешениями? Вы это проверяли?
Мартин Маркончини
Работает ли перезапуск Finder?
Итай Фербер
Не права доступа: оскорбительные файлы доступны через Терминал. Перезапуск OS / X не имеет никакого эффекта.
Роберт Альтман

Ответы:

8

Это решило это для меня! http://macadmins.psu.edu/news/2011/06/grayed_out_finder_folder

Итак, что случилось? Похоже, что дата создания папки была установлена ​​на случайную дату в 1943 году. Хотя мы не уверены в том, как это произошло, мы все же выяснили, как это исправить.

Мы использовали несколько двоичных файлов, которые поставлялись с инструментами разработчика, GetFileInfo и SetFile. GetFileInfo показала нам дату создания папки. Сначала мы не заметили этого, но при ближайшем рассмотрении это привлекло наше внимание.

Атрибуты $ GetFileInfo Test / directory: "/ Users / user / Desktop / Test": avbstclinmedz создано: 13.06.1943, 06:13:00, изменено: 13.06.2011, 15:07:33

Затем мы могли бы изменить дату создания, используя инструмент SetFile.

$ SetFile -d 13.06.2011 Тест /

Установив дату на разумное время, мы видим, что она действительно изменилась.

Атрибуты $ GetFileInfo Test / directory: «/ Users / userid / Desktop / Test»: avbstclinmedz создано: 13.06.2011, 06:13:00, изменено: 13.06.2011, 15:07:33

Затем папка правильно отображается в Finder и снова может использоваться. Мы также обнаружили, что если вы создали псевдоним папки, вы можете увидеть данные и удалить их. После перемещения в другую папку старую папку можно удалить.

nickganga
источник
1
Это имело бы много смысла; если я правильно помню, я видел странные даты. К сожалению (для проверки теории), я с тех пор исправил ошибки, и я не видел это снова некоторое время. Спасибо за информацию!
Роберт Альтман
5

Используйте, ls -laчтобы проверить, имеет ли файл расширенные свойства. Это будет выглядеть примерно так:

-rwxr-xr-x@ 1 user1 staff 439734882 Aug 16 21:34 myfile.zip

Посмотрите на @ в конце. Это означает расширенные свойства.

Чтобы просмотреть расширенные свойства, вам нужно использовать xattr -l filenameкоманду.

Во многих случаях у серых файлов есть com.apple.FinderInfoатрибут, который выглядит следующим образом:

com.apple.FinderInfo:
00000000  62 72 6F 6B 4D 41 43 53 00 00 00 00 00 00 00 00  |brokMACS........|
00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000020

Чтобы удалить этот атрибут, запустите xattr -d com.apple.FinderInfo filename, и файл вернется в нормальное состояние.

Если вам нужно рекурсивно удалить этот атрибут из всех файлов, вы можете запустить:

xattr -dr com.apple.FinderInfo .

Не пропустите точку .в конце, которая означает текущий каталог.

Исходное сообщение: https://tangentlin.wordpress.com/2013/10/18/greyed-out-files-in-mac-osx/

camikiller
источник
1
Только этот работал для меня на Высокой Сьерре.
Ривера
2

Я решил это с помощью команды дубликата в серой папке. Новая папка будет доступна, и файлы могут быть перемещены в другую папку. После перемещения файлов удалите обе папки (серую и копировать), теперь обе пустые

Адриан Триф
источник
1

Попробуйте удалить свои кеши (~ / Library / Caches) и перезапустить. Мой опыт показывает, что это обычно устраняет странные проблемы с иконками.

Харв
источник
К сожалению, это не имело никакого эффекта.
Роберт Альтман
1

Вы можете попытаться повторно rsync файлы с помощью rsyncинструмента:

$ rsync -aut /source/* /destination

или (если файлов слишком много):

$ find /source/ -name \* -type f -exec rsync -at {} /destination/ ";"

Вот аргументы для BSD rsync:

-a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
-u, --update                skip files that are newer on the receiver
-t, --times                 preserve modification times

Если вы используете GNU rsync, рассмотрите возможность добавления:

-N, --crtimes               preserve create times (newness)

Примечание. Вы можете установить GNU с rsyncпомощью brew install rsync.

Если это не поможет, попробуйте и без -u.

kenorb
источник
@Flimm Правильно, я использовал GNU для тестирования, я уточнил ответ. Удалено -N, но вы можете добавить его, если у вас версия GNU, в противном случае используйте синтаксис BSD.
kenorb
Использование GNU rsync с -Nпометкой работало для меня. Я не уверен, было ли это из-за -Nфлага.
Flimm
0

Эврика! Я понял, что является причиной проблемы.

Файлы копируются в общий сетевой ресурс Windows Server 2008 с репликацией DFS (на другой сервер). Каким-то образом Finder кеширует состояние «занято» файла; и это иногда происходит во время репликации файла.

Обходной путь - использовать терминал для дублирования файла, удаления оригинала, WAIT !!!, а затем переименовать дубликат в оригинальное имя. (Если вы не ждете, дубликат может стать серым, когда его переименуют.)

Это «что»; Я все еще надеюсь, что кто-то может объяснить, где информация кэшируется.

Если кто-то может выяснить, где информация кэшируется и как определить, какие файлы затрагиваются в сценарии, я приму их ответ; в противном случае я отмечу это как этот ответ и запишу проблему в странности совместимости OS / X и Windows.

Роберт Альтман
источник