0

一連のファイル システム オブジェクト情報 (ハッシュ、日付など) を収集し、それを MySQL データベース (オブジェクトごとに 1 行) に格納するスクリプトがあります。スクリプトは、Mac OS X 10.10.4 (MBP) の Bash で実行されています。

HFS+ 拡張属性もデータベースに保存したいと考えています。xattr の出力は以下のようになります。属性名と ASCII 値だけを残して、16 進数と書式設定テキストをダンプしたいと思います。これは、行番号、16 進数、および | をダンプするだけではないことを意味します。文字を書式設定するだけでなく、属性名を前に付けて属性名ごとに 1 行に値を連結します。各オブジェクト (ファイル/フォルダー) には複数の属性があり、属性名は定義されていないことに注意してください。

次の入力を行います。

$xattr -l wordpress-3.9.6.zip 
com.apple.metadata:kMDItemWhereFroms:
00000000  62 70 6C 69 73 74 30 30 A2 01 02 5F 10 29 68 74  |bplist00..._.)ht|
00000010  74 70 73 3A 2F 2F 77 6F 72 64 70 72 65 73 73 2E  |tps://wordpress.|
00000020  6F 72 67 2F 77 6F 72 64 70 72 65 73 73 2D 33 2E  |org/wordpress-3.|
00000030  39 2E 36 2E 7A 69 70 5F 10 2F 68 74 74 70 73 3A  |9.6.zip_./https:|
00000040  2F 2F 77 6F 72 64 70 72 65 73 73 2E 6F 72 67 2F  |//wordpress.org/|
00000050  64 6F 77 6E 6C 6F 61 64 2F 72 65 6C 65 61 73 65  |download/release|
00000060  2D 61 72 63 68 69 76 65 2F 08 0B 37 00 00 00 00  |-archive/..7....|
00000070  00 00 01 01 00 00 00 00 00 00 00 03 00 00 00 00  |................|
00000080  00 00 00 00 00 00 00 00 00 00 00 69              |...........i|
0000008c
com.apple.quarantine: 0001;55701556;Google Chrome.app;8AD80928-CB48-48EA-8A1B-EC4B0BE656A9

そして、次のようにします。

com.apple.metadata:kMDItemWhereFroms: bplist00..._.)https://wordpress.org/wordpress-3.9.6.zip_./https://wordpress.org/download/release-archive/..7...............................i
com.apple.quarantine: 0001;55701556;Google Chrome.app;8AD80928-CB48-48EA-8A1B-EC4B0BE656A9

助けてくれてありがとう

MC

4

1 に答える 1

0

xattrあまりカスタマイズできません。スクリプトで使用するよりも、人間がブラウジングするためのものです。別の言語を使用した方がよいでしょう。Python での例を次に示します。

import xattr
x = xattr.xattr('wordpress-3.9.6.zip')
for name, value in x:
     print name, repr(x[name])

目的の出力に応じて、呼び出しをドロップするrepr(または別のラッパーを使用する) ことができます。x[name]

.プログラムの ASCII 出力からの は、xattr印刷できない ASCII 文字を表しているため、ほぼ確実に不要であることに注意してください。

于 2015-08-11T16:33:12.470 に答える