用户不时上传带有"com.apple.quarantine“标签的文件。我认为,当用户从互联网上下载了一个文件到他的计算机上时,就增加了这个功能。
我的问题是,如果我在Linux上,如何从文件中删除它?
谢谢
发布于 2014-04-05 10:30:49
使用setfattr。在linux上,扩展属性应该位于“user”中。命名空间(您的里程可能有所不同):
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"发布于 2014-04-05 17:07:01
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现在只有test1和test2在/tmp文件下。
https://stackoverflow.com/questions/22878482
复制相似问题