間違ったディレクトリに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