TextMate создает временные файлы, а не удаляет их!

3520
OscarRyz

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

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

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

6

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

13
Chealion

._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 )' 
Итак, это функция OSX? Оооо ... Теперь вы упоминаете, что это происходит только тогда, когда я использую подключенный диск Parallels (следовательно, не HFS). О значениях по умолчанию: какое значение по умолчанию? (на случай, если мне понадобится вернуть его обратно) OscarRyz 14 лет назад 0
Значение по умолчанию 0, но не волнуйтесь ... вы НИКОГДА не пропустите эту функцию. mmc 14 лет назад 1
Отличный вопрос, отличный ответ. :-) robsoft 14 лет назад 0
Метаданные содержат позицию курсора TextMate, что, в зависимости от файла, может быть весьма полезным. Daniel Beck 13 лет назад 2
1
arri

These ._, or dot-underscore files are created by Mac OSX as an alternate way of storing Extended Attributes on a filesystem that doesn't support those natively.

Although technically and historically something completely different, recent versions of Mac OSX treat Resource Forks more/less as if they were Extended Attributes, at least from a user-perspective. See this stackexchange question for more (technical) information on (Extended) File Attributes, resourceforks and streams etc.

You can learn about the presence of Extended Attributes on files using ls -l on the commandline. Files with extended attributes have a @ appended to their name. Doing ls -l@ will also list the names of these attributes. And finally, doing xattr -l <filename> prints the attribute-names and -data of the specified file (hex-editor style). See below for examples.

$ > 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 |....#.......#...| ...

Note that next to HFS Plus, many other filesystems support Extended Attributes as well, they just don't always play nice with Mac OSX out of the box.

One example would be for instance an SMB-mounted, remote Windows filesystem (NTFS). Both the NTFS filesystem, as the SMB-'protocol' (and Mac-implementation of it) support Extended Atributes, but in that context they're called Named Streams. This feature is often disabled by default, but can easily enabled as described here.

0
Morven

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