整理整頓されたディレクトリに大量のファイルを生成するアーカイブを展開しました。例えば:
user@comp:~/tidy$ tar xvf myarchive.tar
file1
file2
dir1/
dir1/file1
dir1/subdir1/
dir1/subdir1/file1
dir2/
dir2/file1
...
私は、tarファイルが単一のフォルダー(つまりmyarchive/
)に整理されることを期待していましたが、そうではありませんでした!今、私は組織化されたディレクトリであったものにデジタル的にfされた190のファイルとディレクトリを持っています。これらの解凍されたファイルはクリーンアップする必要があります。
これを「取り消し」、このアーカイブから抽出されたファイルとディレクトリを削除する方法はありますか?
以下の優れた回答をありがとう。要約すると、2つのステップ(1)ファイルの削除、(2)空のディレクトリ構造の逆パッキング順での削除(最初に外部ディレクトリを削除する)で機能するものは次のとおりです。
tar tf myarchive.tar | xargs -d'\n' rm
tar tf myarchive.tar | tac | xargs -d'\n' rmdir
さらに安全なのは、echo
after を追加してコマンドのドライランをプレビューすることxargs
です。
xargs
(単なる化粧品のtac
代わりにsort -r
)が、コメントで説明したように、あなたに合わなかったプロセス置換で答えを受け入れますか?また、xargs -d'\n'
将来のユーザーのために要約したい場合は、投稿でスイッチを指定してください。そうすれば、ファイル名にスペースが含まれることはありません。
-d'\n'
今までの必要性を理解していませんでしたが、さらに分析すると、あなたの答えは実際に私が使用したものに近くなります。
-d'\n'
ように指示しない場合xargs
(これがフィードの内容です)、スペースの場合は、名前はfolder1/some file
として読まれますfolder1/some
とname
。