Acabo de descomprimir un archivo que produjo un desastre de archivos en mi ordenado directorio. Por ejemplo:
user@comp:~/tidy$ tar xvf myarchive.tar
file1
file2
dir1/
dir1/file1
dir1/subdir1/
dir1/subdir1/file1
dir2/
dir2/file1
...
Esperaba que el archivo tar se hubiera organizado en una sola carpeta (es decir, myarchive/
), ¡pero no fue así! Ahora tengo unos 190 archivos y directorios que han vomitado digitalmente en lo que era un directorio organizado. Estos archivos sin archivo necesitan ser limpiados.
¿Hay alguna forma de "deshacer" esto y eliminar los archivos y directorios que se extrajeron de este archivo?
Gracias por las excelentes respuestas a continuación. En resumen , esto es lo que funciona con dos pasos (1) eliminar archivos y (2) eliminar la estructura de directorios vacía en orden inverso al empaque (para eliminar primero los directorios externos):
tar tf myarchive.tar | xargs -d'\n' rm
tar tf myarchive.tar | tac | xargs -d'\n' rmdir
Y aún más seguro, para obtener una vista previa de una ejecución en seco de los comandos agregando echo
después xargs
.
xargs
(en tac
lugar de sort -r
solo cosméticos), pero aceptas la respuesta con la sustitución del proceso que, como explicaste en los comentarios, ¿no te quedaba bien? Además, active el xargs -d'\n'
cambio en su publicación si desea hacer un resumen para futuros usuarios, para que no se muerdan con espacios en los nombres de archivo.
-d'\n'
hasta ahora, y después de un análisis más profundo, su respuesta está realmente más cerca de lo que usé.
-d'\n'
radica en el hecho de que si no le dice xargs
que divida los argumentos en nuevas líneas (que es lo que está alimentando) pero en espacios, entonces un archivo con el el nombre folder1/some file
se leerá como folder1/some
y name
.