web-dev-qa-db-ja.com

DS_Storeファイルとバリアントを削除しますか?

Ubuntu 10.04.1LTSサーバーを実行しています。 MacからAFPを使用してファイルを開くことがよくあります。必然的に、これによりサーバー上に.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ファイルの既存のバリアントをすべて削除したいと考えています。これらのバリアントが作成されている理由と、それらをすべて取り除く方法についてのアイデアはありますか?

3
Ron Gejman

:2eプレフィックスは、ドットファイルを許可しないnetatalkサービスのデフォルト設定の副作用のようです。これを回避するには(つまり、ファイル名を.DS_Storeなどとしてサーバーに表示する)、/ etc/netatalk/AppleVolumes.defaultの各共有にoptions:usedotsを追加します( この前の質問 および netatalkドキュメント )。

これにより、既存の「:2e」ファイルが削除されたり、新しい「。」が妨げられたりすることはありません。ファイルが作成されないようにするには、新しいファイルを正しい名前で作成するだけです(そしてそれらを適切に非表示にします)。 DSDontWriteNetworkStores設定を行うと、新しい.DS_Storeファイルが作成されなくなりますが、.TemporaryItems、.Trashes、._ *ファイル(これらはリソースフォークと非標準メタデータを保持するAppleDoubleファイルです)は妨げられません。 、など。これらが作成されないようにする方法はわかりません。後でクリーンアップすることしかできません(そして、重要なものがないことを願っています。これは必ずしも安全な仮定ではありません)。

サーバー上のこれらのさまざまなファイルを削除するための Christian Imhorstによるスクリプト を見つけました。彼のサイトの文字エンコードは少し文字化けしているので、ここにクリーンアップされた(そして少し変更された...)バージョンを含めます。削除するファイル名のリストに少し追加しました。キルリストを自由に編集して好みに合わせてください。ただし、「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 {} \;
5
Gordon Davisson

これは非常に古い質問ですが、Lionにアップグレードした後、この問題が再発しました。インストールしたばかりです BlueHarvest これで問題が解決したようです。 Linuxサーバー上の不要なファイルを削除します。

2
Matthijs

ここでは推測ですが、0x2eは46の16進数であり、ピリオド文字.の場合はASCII)です。.DS_Storeファイルが取得されていると思いますドットで始まるものはすべて隠しファイルであるというLinuxの命名規則と衝突しないように名前が変更されました。メカニズムが実際に何をしているのかについてはわかりませんが、それが「2e」を説明しています。

1
Chris

なぜそれらが.DS_Storeではなく:2e_somethingと呼ばれるのかはわかりませんが、それでも、TemporaryItemsはCarbonアプリケーション(MS-Officeなどのいくつかのプログラムでまだ使用されている古いMacOS 9互換性レイヤー)によって作成されます。 AFAIK、それらを取り除きますが、削除しても安全です。

基盤となるFSがサポートする場合でも、MacOSはSambaを介して拡張属性を使用できないため、システムは最初にそれらを作成します。したがって、リソースフォーク、フォルダーラベルなどを格納します。隠しファイルで。

MacOS以外のシステムを使用してファイルにアクセスする場合、これらはこのペアリングを認識していないため、非常に苦痛です。ファイルを移動、名前変更、または削除すると、孤立した._xxxファイルが多数発生します。

0
Sven

:2Eは、%2Eのバリアントである可能性が高く、これは。に変換されます。 (期間)あたり http://www.w3schools.com/tags/ref_urlencode.asp

0
delimiter69

ドットファイルを削除することはお勧めしません。これは、リソースフォークをまだ使用している一部のアプリケーションで問題が発生する可能性があるためです(さらに、ほとんどのアプリケーションはとにかく再作成されます)。 ._で始まるファイルも表示される場合があります。これらのファイルは、Samba接続からのファイルのリソースフォークです。これらのファイルは一部のサーバーにありますが、データが失われる可能性があるため、最終的には毎晩クリーンアップする価値がないと判断しました。

0