Как я могу копировать файл x времена в другом каталоге с терминалом?

Я пытаюсь копировать файл изображения к другой папке x времена (100 раз). Как я могу сделать это в терминале?

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

До сих пор я попробовал это:

i=10; while((i++ < 100)); do cp index "index$i"; done

Помогите.

6
задан 21 December 2016 в 00:31

2 ответа

Просто предварительно ожидайте имя каталога перед именем (именами) файла:

i=0; while ((i++ < 100)); do cp index /destination/directory/"index$i"; done

Замена /destination/directory с фактическим именем каталога.

6
ответ дан 23 November 2019 в 07:30

Это принимает файл, который Вы хотите скопировать, находится в текущем рабочем каталоге.
Замена /path/to/destination с путем к реальному каталогу как требуется.
index должен быть заменен реальным именем файла при необходимости:

for i in {1..100}; do echo cp -v -- index /path/to/destination/"index-$i"; done

Удаляют echo после тестирования и повторяют команду для фактического копирования файлов

, было бы лучше сделать фиксированную ширину чисел для более легкой сортировки, т.е. 001,002... 010 и т.д., таким образом, Вы могли использовать printf:

for i in {1..100}; do printf -v new "index-%03d" "$i"; echo cp -v -- "index" /path/to/destination/"$new"; done

или больше четко

for i in {1..100}; do
  printf -v new "index-%03d" "$i"
  echo cp -v -- "index" /path/to/destination/"$new"
done
4
ответ дан 23 November 2019 в 07:30

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

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