Удаление файлов DS_Store и вариантов?
Я использую сервер 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, уже находящихся на сервере. Любые идеи относительно того, почему эти варианты создаются и как я могу избавиться от них всех?
7 ответов
Префикс:2e, по-видимому, является побочным эффектом настройки по умолчанию службы netatalk, которая запрещает использование файлов точек; чтобы избежать этого (т. е. имена файлов появляются на сервере как.DS_Store и т. д.), добавьте options:usedots
для каждой папки в /etc/netatalk/AppleVolumes.default (см. этот предыдущий вопрос и документацию по netatalk).
Это не избавит от существующих файлов ":2e" и не предотвратит появление новых "." файлы создаются, просто создайте новые файлы с более разумными именами (и сделайте их правильно невидимыми). DSDontWriteNetworkStores
выполненные вами настройки должны препятствовать созданию новых файлов.DS_Store, но не препятствуют файлам.TeoraryItems, .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, что все, что начинается с точки, является скрытым файлом. Относительно того, какой механизм фактически делает это, я не знаю; но это объясняет "2е".
Я не рекомендовал бы удалять файлы точек, потому что это может вызвать проблемы с некоторыми приложениями, которые все еще используют вилки ресурсов (плюс большинство из них просто воссоздано в любом случае). Вы также можете увидеть файлы, начинающиеся с._, и эти файлы являются ветвью ресурса файла из соединения Samba. У нас есть эти файлы на некоторых наших серверах, и в итоге мы решили, что не стоит пытаться очистить их каждую ночь из-за возможной потери данных.
:2E, вероятно, вариант%2E, который переводится как. (период) за http://www.w3schools.com/tags/ref_urlencode.asp
Не уверен, почему они называются:2e_something вместо.DS_Store, но, тем не менее, TemporaryItems создаются приложениями Carbon (это старый уровень совместимости MacOS 9, все еще используемый несколькими программами, т. Е. MS-Office), и вы не можете Избавься от них, AFAIK, но их безопасно удалить.
Система создает их в первую очередь потому, что MacOS не может использовать расширенные атрибуты через Samba, даже если базовая ФС поддерживает их, поэтому она хранит такие вещи, как вилки ресурсов, метки папок и т. Д. В скрытых файлах.
Это настоящая боль, если вы также используете другие системы, кроме MacOS, для доступа к файлам, потому что они не знают об этом соединении, и если вы перемещаете, переименовываете или удаляете файлы, вы в конечном итоге получаете множество потерянных файлов._xxx.
Вы должны быть в состоянии найти все варианты папки, используя:
find ./ -regex '/:2eDS_Store$' | xargs echo
Это не приведет к удалению файлов на месте, но вы должны сначала проверить результаты и не доверять мне вслепую:)