удалить файлы, извлеченные из архива tar

Иногда я распаковываю tar-архив совершенно не в тот каталог. Обычно потому, что в некоторых архивах все файлы находятся на один каталог ниже, а в некоторых нет.

tar -xvf archive.tar

Каков наилучший способ отменить/обратить это?

Перечислите файлы, содержащиеся в archive.tar, и направьте их в rm ...?

Дополнительные интернет-точки для обработки файлов, которые могли быть перезаписаны извлечением.


person Jacob Dorman    schedule 09.10.2013    source источник
comment
Extra internet points for handling files that may have been overwritten by the extract. -- невозможно определить это после извлечения архива.   -  person devnull    schedule 09.10.2013


Ответы (1)


Мой гугл-фу был слабым.

Из комментариев к этому [http://www.commandlinefu.com/commands/view/2573/remove-all-files-previously-extracted-from-a-tar.gz-file.] (запись командной строки)

tar tf <file.tar.gz> | sort -r | while read file; do if [ -d "$file" ]; then rmdir "$file"; else rm -f "$file"; fi; done

Надеюсь, это поможет кому-то другому.

Если кто-то знает способ обработки перезаписанных файлов, я отмечу это как правильный ответ.

person Jacob Dorman    schedule 09.10.2013
comment
Как обращаться с перезаписанными файлами: восстановление из резервной копии. Нет другой записи о том, как раньше выглядел каталог, если только каталог не находится под контролем источника (и файл tar каким-то образом не перезаписал метаданные репо). - person chepner; 09.10.2013