4

OSX の「xattr」ユーティリティを使用して、あるファイルから別のファイルに拡張属性をコピーしようとしています。バックグラウンドは、バックアップツールを構築していて、ファイル/構造がすべての属性、ACL などを保持する必要があることです...リソースフォークなどの大きな属性を除いて、すべて正常に機能しています。小さな属性は、以下の方法を使用して正常に機能します。OS X 10.7.5 でこれを試みる

まず、「ls -l@」を使用してファイルの属性を特定します。以下の結果:

-rwxrwxrwx@ 1 testuser  staff        0  3 Jan  2011 File
        com.apple.FinderInfo         32 
        com.apple.ResourceFork   237246 

次に、属性をエクスポートします (com.apple.ResourceFork が問題の原因です)。

xattr -px com.apple.ResourceFork File > attribfile

次のコマンドを使用して、この属性を別の Mac 上のファイルのコピーに適用したいと思います。

xattr -wx com.apple.ResourceFork "`cat attribfile`" File 

これにより、次の結果が得られます。

-bash: /usr/bin/xattr: Argument list too long

なぜそれが起こっているのかはわかっていると思います... リソースフォークのデータが長すぎて、引数に収まりません。壊れ始めるしきい値は確立していませんが、ARG_MAX に関係していると思われます。xargs は、いくつかの小さな引数ではなく、1 つの非常に大きな引数であるため、ここでは役に立ちません。

複数の質問:

  1. xattr にこの大きな値を受け入れさせる方法はありますか? どういうわけか標準入力経由でパイプしますか?manページには表示されませんが、私は専門家ではなく、おそらくそれを行うための創造的な方法があります
  2. ストックコマンドラインツールを使用して大きな拡張属性を適用する適切な方法を誰か教えてもらえますか?
  3. ストックコマンドラインツールがない場合、サードパーティツールの推奨事項はありますか?
4

2 に答える 2

3

でそれを行う方法はわかりませんが、xattr使用できる古いファイルシステムのトリックがあります。注: これは基本的に廃止されましたが、10.8.2 でも機能します。10.8.3 などについては約束しません。attribfile が 16 進形式の場合は、次を使用します。

xxd -r -p attribfile >File/..namedfork/rsrc

attribfile が raw の場合は、cat代わりにxxd -r -p. 属性がリソース フォーク以外の場合は、わかりません。

于 2012-11-23T22:24:28.663 に答える
-1

The accepted answer did not work for me, so I continued and found another solution, which I post here in case other people need it.

My problem was copying vlc-2.1.4 to the /Applications folder. It kept saying:

The Finder can’t complete the operation because some data in “VLC” can’t be read or written.
(Error code -36)

And If I tried using a cp in the terminal i was getting the error indicated in this thread.

So what I did was to execute the following commands in the console (summarizing I tar the VLC and untar it in its destination, so ... it works as a cp):

cd /Volumes/vlc-2.1.4/
tar cf /Applications/vlc.tar  VLC.app
cd /Applications/
tar xf vlc.tar 
rm vlc.tar

I hope this will be useful for others with the same problem.

于 2014-03-22T02:56:41.250 に答える