ストレステストを実行する AppleScript スクリプトがあります。テストの一環として、特定のファイルを開いて保存して閉じることができます。どういうわけか、ファイルはファイルが保存されるのを妨げるいくつかの「拡張属性」を拾いました。それが原因でストレステストが失敗します。
拡張属性を削除する方法
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ページがあります 。
Bavariousの答えを見てください。
xattr
を-c
フラグと共に使用して、属性を「クリア」します。
xattr -c yourfile.txt
ディレクトリ内のすべてのファイルの拡張属性を再帰的に削除するには、-c
の "clear"フラグと-r
の再帰フラグを組み合わせます。
xattr -rc /path/to/directory
スペースまたは特殊文字を含む長いパスがありますか?
Terminal.app
を開いてxattr -rc
と入力し、末尾にスペースを入れてから、ファイルまたはフォルダーをTerminal.app
ウィンドウにドラッグすると、自動的にフルパスがエスケープされます。
試してみてください。
xattr -rd com.Apple.quarantine directoryname
これは、いたるところでpesky属性を再帰的に削除します。
別の再帰的アプローチ
# 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