Я использую сервер Ubuntu 10.04.1 LTS. Часто я открываю файлы с помощью AFP со своего Mac. Неизбежно это создавало файлы .DS_Store на сервере (хотя по какой-то причине они называются :2eDS_Store
. Однако он также создает варианты в файлах DS_Store. Эти варианты часто называются аналогично другим файлам в этом каталоге. Например.:
~$ ls
total 60K
-rw-r--r-- 1 tarakhovsky 16K 2010-11-30 18:28 :2eDS_Store
drwx--S--- 4 tarakhovsky 4.0K 2010-11-08 13:58 :2eTemporaryItems/
lrwxrwxrwx 1 tarakhovsky 15 2010-10-19 17:44 bigdisk -> /media/bigdisk//
...
drwxr-xr-x 3 tarakhovsky 4.0K 2010-11-03 18:24 Temporary Items/
drwxr-xr-x 3 tarakhovsky 4.0K 2010-11-30 01:34 tmp/
...
Я отключил создание файлов DS_Store, используя:
defaults write com.apple.desktopservices DSDontWriteNetworkStores true
так что, надеюсь, этого больше не будет, но я действительно хочу избавиться от всех существующих вариантов файлов DS_Store, уже находящихся на сервере. Есть идеи, почему создаются эти варианты и как от них всех избавиться?
Префикс: 2e, по-видимому, является побочным эффектом настройки службы netatalk по умолчанию, которая запрещает использование файлов точек; чтобы избежать этого (т.е. чтобы имена файлов отображались на сервере как .DS_Store и т. д.), добавьте options:usedots
к каждому общему ресурсу в /etc/netatalk/AppleVolumes.default (см. этот предыдущий вопрос и документация netatalk).
Это не избавит ни от существующих файлов ": 2e", ни от новых файлов "." файлы от создания, просто создайте новые файлы с более разумными именами (и сделайте их должным образом невидимыми). В DSDontWriteNetworkStores
настройка, которую вы сделали, должна предотвратить создание новых файлов .DS_Store, но не предотвратит файлы .TemporaryItems, .Trashes, ._ * (это файлы AppleDouble, содержащие вилки ресурсов и нестандартные метаданные) и т. д. знаете какой-либо способ предотвратить их создание, вы можете только очистить их после (и надеяться, что в них не было ничего важного - это не всегда безопасное предположение).
Я нашел сценарий Кристиана Имхорста удалить различные из этих файлов на сервере. Кодировка символов на его сайте немного искажена, поэтому я включу здесь очищенную (и слегка измененную ...) версию. Я добавил немного в список удаляемых имён файлов; не стесняйтесь редактировать список убийств по своему вкусу. Но УБЕДИТЕСЬ, ЧТО У ВАС ЕСТЬ РЕЗЕРВНАЯ КОПИЯ, ПЕРЕД ЗАПУСКОМ ЭТОГО, поскольку любой сценарий, который включает символы «rm -rf», следует рассматривать как потенциально опасный.
#!/bin/bash
# Script: sauber
# Object: Cleans up your Linux file system after a
# session with AppleTalk and Finder.
# Etymologie: sauber means clean in German
# Author: originally by Christian Imhorst [http://www.datenteiler.de/what-is-2eds_store/]
# modified by Gordon Davisson
# Test number of arguments here
if (( $# < 1 )) ; then
echo >&2
echo "We need an argument here." >&2
echo "Usage: ./sauber [Directory]" >&2
echo "Example: ./sauber /home/christian" >&2
echo >&2
exit 1
elif [[ ! -d "$1" ]] ; then
echo "$1 is not a directory" >&2
exit 1
fi
find "$1" \( -iname ':2eDS_Store' \
-o -iname '.DS_Store' \
-o -iname '.AppleDouble' \
-o -iname 'Network Trash Folder' \
-o -iname 'Temporary Items' \
-o -iname ':2eTemporary Items' \
-o -iname '.Temporary Items' \
-o -iname ':2elocalized' \
-o -iname '.localized' \
-o -iname ':2e_*' \
-o -iname '._*' \) -exec rm -rf {} \;
Я знаю, что это очень старый вопрос, но после обновления до Lion я вернул эту проблему. Я только что установил BlueHarvest и это, кажется, решило мою проблему. Он удаляет ненужные файлы на моем сервере Linux.
Только предположение, но 0x2e
шестнадцатеричный код 46, то есть ASCII для символа точки .
. Я предполагаю, что .DS_Store
файлы переименовываются таким образом, что они не противоречат соглашению об именах Linux, согласно которому все, что начинается с точки, является скрытым файлом. А к тому, что механизм действительно делает это, я не знаю; но это объясняет "2e".
: 2E, вероятно, является вариантом% 2E, который переводится в файл. (период) на http://www.w3schools.com/tags/ref_urlencode.asp
Не уверен, почему они называются: 2e_something вместо .DS_Store, но, тем не менее, TemporaryItems создаются приложениями Carbon (это старый уровень совместимости MacOS 9, который все еще используется несколькими программами, например MS-Office), и вы не можете избавьтесь от них, AFAIK, но их можно безопасно удалить.
Система создает их в первую очередь, потому что MacOS не может использовать расширенные атрибуты через Samba, даже если базовая FS их поддерживает, поэтому он хранит такие вещи, как вилки ресурсов, метки папок и т. Д. В скрытых файлах.
Это настоящая боль, если вы также используете другие системы, кроме MacOS, для доступа к файлам, потому что они не знают об этой паре, и если вы перемещаете, переименовываете или удаляете файлы, вы получаете много потерянных файлов ._xxx.
Я бы не рекомендовал удалять точечные файлы, потому что это может вызвать проблемы с некоторыми приложениями, которые все еще используют вилки ресурсов (плюс большинство из них в любом случае будут просто воссозданы). Вы также можете увидеть файлы, начинающиеся с ._, и эти файлы являются ветвью ресурсов файла из соединения Samba. У нас есть эти файлы на некоторых из наших серверов, и в конце концов мы решили, что не стоит тратить силы на их очистку каждую ночь из-за потенциальной потери данных.
Вы сможете найти все варианты папки, используя:
find ./ -regex '/:2eDS_Store$' | xargs echo
Это не приведет к удалению файлов на месте, но вы должны сначала проверить результаты и не доверять мне слепо :)