我在错误的目录中提取了一个 tar 文件

我在错误的目录中提取了一个 tar 文件

我在错误的目录中提取了一个 tar 文件,这个 tar 文件提取了 200 个文件。我无法从目录中删除所有内容,因为目录中有 10 个文件,并且是需要的。

答案1

就我个人而言,我会将 tar 文件提取到一个空目录中,diff --report-identical-files --recursive --brief将新目录提取到错误目录中,使用一些 sed 脚本提取错误名称并将其转换为一系列rm命令,然后运行它。

我的 sed 脚本:

#!/bin/sh

stdbuf -oL sed -n \
        -e 's/^Files ..*\(\/..*\) and \(..*\1\) are identical$/\2/p' \
        -e 's/^File ..*\(\/..*\) is a socket while file \(..*\1\) is a socket$/\2/p' \
        -e 's/^File ..*\(\/..*\) is a fifo while file \(..*\1\) is a fifo$/\2/p' \
    | stdbuf -oL sed \
        -e s/"'"/"'"'"'"'"'"'"'"/g \
        -e 's/.*/rm   '"'"'&'"'"'/' \
        ;

更简单的解决方案可能是使用tar -t.tar 文件生成文件列表,然后删除这些文件。

也许:

tar tf tarfilename.tar | xargs rm -i

相关内容