¿Encontrar una lista de archivos de un archivo de texto en subdirectorios y colocarlos en tarball?

¿Encontrar una lista de archivos de un archivo de texto en subdirectorios y colocarlos en tarball?

Tengo una lista de archivos que necesito tar. Normalmente, usaría

tar -cvf allfiles.tar -T mylist.txt

Pero descubrí que los archivos que necesito están dispersos en subdirectorios y mi lista solo tiene los nombres de los archivos, no las rutas.

¿Hay alguna manera de combinar "buscar" con el comando tar para buscar los archivos en mi lista dondequiera que estén archivados en subdirectorios?

Respuesta1

Puede encontrar las rutas usando su lista de nombres y find, pero puede verse atrapado en un pequeño caso de esquina, dado que tiene los archivos con el mismo nombre en diferentes directorios.

Si realmente no importa, puedes hacer lo siguiente:

find <main_directory> | grep -f mylist.txt

Y luego, usa la lista a tu tardisposición. El comando completo puede verse así:

tar cvf allfiles.tar -T <(find <main_directory> |
    grep -f mylist.txt --color=never)

notartedebeuse --color=never; de lo contrario, si los colores están activos para su grep, estaría enviando entradas no válidas para tar.

Para ignorar distinciones de casos, en este caso, en grep, cuál es el que realmentefiltraciónarchivos, simplemente puede agregar la bandera -i:

tar cvf allfiles.tar -T <(find <main_directory> |
    grep -i -f mylist.txt --color=never)

información relacionada