bash で,unzip の結果作られたファイルの一括削除
このような状況で
$ pwd
~/Desktop
$ ls myzip*
myzip.zip
~/Desktop/myzip/
下に解凍されることを期待して間違ってこうしてしまうことがあります:
$ unzip myzip.zip
結果
$ tree
├── extracted_file0
├── extracted_file1
. ...
├── myzip.zip
... # 元から ~/Desktop にあったファイルたちに混ざってしまっている
大惨事となってしまったので,元の状況に戻したい. 既存のファイルがすでに上書きされてしまった場合は無視できるとして,どのようにすれば unzip
で意図せずディレクトリ上にばら撒かれてしまったファイル群を消し去ることができるでしょうか.
なお, すでに試みたこととしては, unzip -l myzip.zip
で次のような書式のテキストが得られることを知り
Archive: myzip.zip
Length Date Time Name
--------- ---------- ----- ----
119 2015-01-02 16:05 hashas.hs
274 2015-01-25 16:05 piepie.py
--------- -------
393 2 files
とりあえずこれをファイルに書き込んで vim
でファイル名のリストに整形し, cat files.txt | xargs rm
でいちおう対処しました.もう少し場当たり的でない方法を知りたいです.