Скрипт оболочки для использования списка имен файлов в CSV для копирования файлов из одного каталога в другой - PullRequest
2 голосов
/ 24 января 2012

У меня есть список файлов, которые мне нужно скопировать.Я хочу рекурсивно искать диск и копировать эти файлы в определенное место, если это имя файла присутствует в списке.Список представляет собой текстовый файл /

текстовый файл будет выглядеть примерно так:

A/ART-FHKFX1.jpg
B/BIG-085M.jpg
B/BIG-085XL.jpg
L/LL-CJFK.jpg
N/NRT-56808EA.jpg
P/PFE-25.10.jpg
P/PFE-7/60.jpg
P/PFE-7L.20.jpg
P/PFE-8.25.jpg
P/PFE-9.15.jpg
P/PFE-D11.1.tiff
P/PFE-D11.1.tiff
P/PFE-D12.2.tiff
P/PFE-D12.2.tiff

1 Ответ

2 голосов
/ 24 января 2012

с использованием find займет много времени, попробуйте использовать locate, если это возможно.

что будет, когда будет несколько совпадений? например, поиск foo.bar и наличие / foo.bar, а также b / foo.bar, что бы вы сделали в этом случае?

ваш CSV, кажется, содержит путь, учитывая предыдущий, я предполагаю, что эти пути действительно действительны с того места, где запускается скрипт, поэтому в этом случае просто сделайте следующее:

#!/bin/bash

while read path; do
    cp "$path" "$1"
done

тогда назовите это так:

teh_script /path/to/destination < csv-file.csv
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...