从Linux上的文件中删除com.apple.quarantine

时间:2014-04-05 08:28:30

标签: linux macos file

用户不时上传带有“com.apple.quarantine”标签的文件。我认为,当用户从互联网上将文件下载到他的计算机上时,就会增加这一点。

我的问题是,如果我在Linux上,如何从文件中删除它?

由于

2 个答案:

答案 0 :(得分:2)

使用setfattr。在linux上,扩展属性应该在“用户”中。命名空间(您的里程可能会有所不同):

setfattr -x 'user.com.apple.quarantine' file1 [ file2 [ ... ] ]

不幸的是,-xattr谓词还没有进入GNU查找,所以处理一个完整的层次结构涉及一种蛮力和无知的方法,看起来像这样:

cd /path/to/search

errors=/var/tmp/setfattr.errors

find . -exec setfattr -x 'user.com.apple.quarantine' {} + 2> "$errors"

之后,$ errors文件应该只包含没有相关属性的文件的条目:

grep -v 'No such attribute' -- "$errors"

答案 1 :(得分:-1)

touch /tmp/com.apple.quarantine.test1
touch /tmp/com.apple.quarantine.test2

然后运行以下代码。

for f in $(find /tmp/ -type f|grep -i 'com.apple.quarantine');
do
        OLD_NAME=$(echo $f|awk -F "/" '{print $NF'})
        NEW_NAME=$(echo $OLD_NAME|sed "s/com\.apple\.quarantine\.//g")
        echo $NEW_NAME
        DIR_NAME=$(dirname $f)
        cd $DIR_NAME
        mv "$OLD_NAME" "$NEW_NAME"
done

现在/ tmp文件下只有测试1 test2