Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Linux上的文件中删除com.apple.quantial_Linux_Macos_File - Fatal编程技术网

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

从Linux上的文件中删除com.apple.quantial,linux,macos,file,Linux,Macos,File,用户不时上传带有标记“com.apple.quantial”的文件。我认为,当用户从互联网上下载了一个文件到他的计算机上时,就会添加这一点 我的问题是,如果我在Linux上,如何将其从文件中删除 谢谢使用setfattr。在linux上,扩展属性应位于“user.”命名空间中(里程数可能会有所不同): 不幸的是,-xattr谓词还没有进入GNU find,因此处理完整的层次结构需要一种蛮力和无知的方法,如下所示: cd /path/to/search errors=/var/tmp/setfa

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

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


谢谢使用setfattr。在linux上,扩展属性应位于“user.”命名空间中(里程数可能会有所不同):

不幸的是,-xattr谓词还没有进入GNU find,因此处理完整的层次结构需要一种蛮力和无知的方法,如下所示:

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"
然后运行以下代码

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文件下只有test1test2

你说的“在Linux上”是什么意思?这是OSX特性,不是Linux特性。也看到
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