У меня есть набор подкаталогов с файлами внутри:
├── dir1
│ ├── file_a.type
│ ├── file_b.type
│ ├── file_c.type
│ └── file_d.type
├── dir2
│ ├── file_e.type
│ ├── file_f.type
│ ├── file_g.type
│ └── file_h.type
└── README.md
Я могу гарантировать уникальность каждого имени файла. Соглашение об именах каталогов: n[some unique random number]
.
У меня есть текстовый файл с подмножеством этих файлов
file_g.type
file_a.type
file_e.type
Я хотел бы скопировать все файлы, соответствующие именам в этом тексте файл в новый каталог.
Я пробовал использовать xargs для копирования, но это не работает из-за подкаталогов.
xargs -a files.txt cp -t new_dir each
Я мог бы рекурсивно скопировать все файлы в подкаталогах. каталоги в новый каталог и go оттуда. Однако это невозможно из-за размера диска и проблем с пропускной способностью.
Какой эффективный способ сделать это с помощью стандартных bash утилит?