6

Я использую TextMate, и каждый раз, когда я редактирую файл, создается копия, как ._ файл .

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

Как я могу избавиться от этих временных файлов?

3 ответа3

13

Файлы ._file самом деле не являются временными файлами, а файлом, который содержит данные ветвления ресурса для Mac OS X. Mac OS X создаст их для файлов, которые хранятся в системе, отличной от HFS, для сохранения метаданных.

Однако вы можете запустить следующую команду, чтобы отключить создание TextMate разветвления ресурса:

defaults write com.macromates.textmate OakDocumentDisableFSMetaData 1

Если у вас последняя версия (сборка 1589 - 23 ноября 2009 г.), она также позволяет вам вводить массив файловых систем вместо того, чтобы метаданные по-прежнему требовались на других дисках (скажите «да» на ваш внутренний, и «нет» для любой сети или диск без HFS):

defaults write com.macromates.textmate OakDocumentCustomFSMetaData '( afpfs, nfs, msdos, hfs )'
1

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

Хотя технически и исторически что-то совершенно другое, последние версии Mac OSX рассматривают Resource Forks более / менее так, как если бы они были расширенными атрибутами, по крайней мере, с точки зрения пользователя. Посмотрите этот вопрос об обмене стеками для получения дополнительной (технической) информации о (расширенных) атрибутах файлов, ресурсах и потоках и т.д.

Вы можете узнать о наличии расширенных атрибутов в файлах, используя ls -l в командной строке. К файлам с расширенными атрибутами добавляется символ @ . Выполнение ls -l@ также выведет список имен этих атрибутов. И, наконец, выполнение xattr -l <filename> печатает имена атрибутов и -data указанного файла (в стиле hex-редактора). Смотрите ниже примеры.

$ > ls -la ~/Library/Fonts
total 225448
drwx------+ 536 arri  staff    18224 Jun 17 04:57 .
drwx------@ 101 arri  staff     3434 Aug 18 16:33 ..
-rwxr-xr-x@   1 arri  staff       45 Aug 12  2010 04b-03.suit
-rwxr-xr-x    1 arri  staff    19492 Mar 25  2003 04b03.ttf
-rw-r--r--@   1 arri  staff    54544 Apr 24  2012 27344.ttf
...

$ > ls -la@ ~/Library/Fonts
total 225448
drwx------+ 536 arri  staff    18224 Jun 17 04:57 .
drwx------@ 101 arri  staff     3434 Aug 18 16:33 ..
    com.apple.FinderInfo         32 
-rwxr-xr-x@   1 arri  staff       45 Aug 12  2010 04b-03.suit
    com.apple.FinderInfo         32 
    com.apple.ResourceFork    20314 
-rwxr-xr-x    1 arri  staff    19492 Mar 25  2003 04b03.ttf
-rw-r--r--@   1 arri  staff    54544 Apr 24  2012 27344.ttf
    com.apple.metadata:kMDItemDownloadedDate         53 
    com.apple.metadata:kMDItemWhereFroms        166 

$ > xattr -l ~/Library/Fonts/04b-03.suit 
com.apple.FinderInfo:
00000000  46 46 49 4C 44 4D 4F 56 01 00 00 00 00 00 00 00  |FFILDMOV........|
00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000020
com.apple.ResourceFork:
00000000  00 00 01 00 00 00 4E F2 00 00 4D F2 00 00 00 68  |......N...M....h|
00000010  C9 0B 1A C9 23 08 03 1A C9 0B 1A C9 23 02 1A C9  |....#.......#...|
...

Обратите внимание, что помимо HFS Plus, многие другие файловые системы также поддерживают расширенные атрибуты, они просто не всегда хорошо работают с Mac OSX из коробки.

Одним из примеров может быть, например, смонтированная на SMB удаленная файловая система Windows (NTFS). Обе файловые системы NTFS, как SMB-протокол (и его реализация для Mac), поддерживают расширенные атрибуты, но в этом контексте они называются именованными потоками. Эта функция часто отключена по умолчанию, но ее легко включить, как описано здесь.

0

TextMate использует ветвь ресурса для хранения таких вещей, как позиция редактирования и состояние свертывания кода. Это все вещи, без которых вы можете жить, хотя они, безусловно, приятно иметь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .