скопируйте, переименуйте и повторитесь

Я хочу скопировать изображение (grey.png) и переименовать его как несколько различных изображений, у меня есть список имен (pastebin), там какой-либо путь? (выполнение 13.10)

4
задан 7 April 2014 в 18:22

2 ответа

Я предположу, что у Вас есть список имен в файле по телефону /path/to/target_names.

, Чтобы сделать копии, открыть терминал и cd к каталогу, содержащему этот файл. Тогда выполненный

for i in $( </path/to/target_names tr -d ',' ); do cp grey.png ${i}; done

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

for i in $( </path/to/target_names tr -d ',' ); do ln -s grey.png ${i}; done

N.B., что при использовании символьных ссылок Вы не будете в состоянии изменить относительные пути оригинала и целей позже. т.е. они должны будут остаться в том же каталоге. (Можно сделать символьную ссылку для альтернативного каталога с исходной командой, если Вам нравится.)

2
ответ дан 17 November 2019 в 15:04

Предположим, что у Вас есть файл names.txt со всем этим, отображает имена.

Создают новую папку для копий:

mkdir copies

Теперь немного тестируют. Это должно произвести все имена файлов

for name in `sed -r 's/,/\n/g;s/ *//g' names.txt`; do echo $name; done

, Если это хорошо работает, действительно затем ступают.

Наконец делают копии к copies папка. Я предполагаю, что Вы выполняете это в папке, где names.txt и папка copies расположены.

for name in `sed -r 's/,/\n/g;s/ *//g' names.txt`; do cp grey.png copies/$name; done
1
ответ дан 17 November 2019 в 15:04

Другие вопросы по тегам:

Похожие вопросы: