web-dev-qa-db-ja.com

Mac OS Xでファイルの「拡張属性」を削除する方法

ストレステストを実行する AppleScript スクリプトがあります。テストの一環として、特定のファイルを開いて保存して閉じることができます。どういうわけか、ファイルはファイルが保存されるのを妨げるいくつかの「拡張属性」を拾いました。それが原因でストレステストが失敗します。

拡張属性を削除する方法

235
tames

xattrコマンドを使用してください。拡張属性を調べることができます。

$ xattr s.7z
com.Apple.metadata:kMDItemWhereFroms
com.Apple.quarantine

1つの拡張属性を削除するには、-dオプションを使用します。

$ xattr -d com.Apple.quarantine s.7z
$ xattr s.7z
com.Apple.metadata:kMDItemWhereFroms

-cオプションを使用してすべての拡張属性を削除することもできます。

$ xattr -c s.7z
$ xattr s.7z

xattr -hはあなたにコマンドラインオプションを示します、そして xattrにはmanページがあります

358
user557219

単一ファイルの単一属性の削除

Bavariousの答えを見てください。


単一ファイルのすべての拡張属性を削除する

xattr-cフラグと共に使用して、属性を「クリア」します。

xattr -c yourfile.txt



多くのファイルのすべての拡張属性を削除する

ディレクトリ内のすべてのファイルの拡張属性を再帰的に削除するには、-cの "clear"フラグと-rの再帰フラグを組み合わせます。

xattr -rc /path/to/directory



Mac OS Xユーザーのためのヒント

スペースまたは特殊文字を含む長いパスがありますか?

Terminal.appを開いてxattr -rcと入力し、末尾にスペースを入れてから、ファイルまたはフォルダーをTerminal.appウィンドウにドラッグすると、自動的にフルパスがエスケープされます。

97
cwd

試してみてください。

xattr -rd com.Apple.quarantine directoryname

これは、いたるところでpesky属性を再帰的に削除します。

20
venkat

別の再帰的アプローチ

# change directory to target folder:
cd /Volumes/path/to/folder

# find all things of type "f" (file), 
# then pipe "|" each result as an argument (xargs -0) 
# to the "xattr -c" command:
find . -type f -print0 | xargs -0 xattr -c

# Sometimes you may have to use a star * instead of the dot.
# The dot just means "here" (whereever your cd'd to
find * -type f -print0 | xargs -0 xattr -c
7
bob