Удаление файлов 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

Это не приведет к удалению файлов на месте, но вы должны сначала проверить результаты и не доверять мне вслепую:)

Другие вопросы по тегам