У меня есть один файл (PDF), и я хочу иметь много одинаковых копий в одной папке (200 было бы хорошо) с именем file-001, file-002 и т. д.
Как сделать Я делаю это?
Это классический случай, когда интерпретации оболочки очень помогают.
for i in {000..199}; do cp file file-$i; done
И я знаю, что это шутка, но если вы хотите, чтобы случайные _ или - разделили число из имя, которое вы можете использовать:
for i in {000..199}; do
cp file file$(cat /dev/urandom | tr -dc '_-' | fold -w 1 | head -n 1 )$i;
done
(несколько строк для удобства чтения)
: - P
Чтобы создать один дубликат файла, вы, вероятно, знаете, что вы можете использовать cp:
cp file file-001
Теперь, чтобы сделать больше дубликатов для файла, вы можете комбинировать cp с [ f5]. В вашем случае:
echo file-{001..200} | xargs -n 1 cp file
скопирует file в file-001, file-002, ..., file-200. Дополнительную информацию см. В man xargs.
Как всегда, грузовик python задерживается, но:
делает его исполняемым, перетаскивая его через окно терминала, перетаскивая файл для копирования через окно терминала и устанавливая количество копий:
script file number_ofcopies
Число начальных нулей устанавливается автоматически, файлы называются file_001.pdf, file_002.pdf, а имена файлов помещены перед расширением.
Сценарий: [!d4 ]
#!/usr/bin/env python3
import sys
import shutil
orig = sys.argv[1]; n = sys.argv[2]; size = len(str(n)); out = (orig[:orig.rfind(".")], orig[orig.rfind("."):])
for item in [out[0]+"_"+(size-len(str(item)))*"0"+str(item)+out[1] for item in range(1, int(n)+1)]:
shutil.copyfile(orig, item)