Команды Linux для копирования одного файла во многие файлы Есть ли однострочная команда / script для копирования одного файла во многие файлы в Linux? cp file1 file2 file3 копирует первые два файла в третий. Есть ли способ скопировать первый файл в остальные? Ответ 1 ли cp file1 file2 ; cp file1 file3 считать "однострочной командой / script"? Как насчет for file in file2 file3 ; do cp file1 "$file" ; done ? Или, для немного более слабого смысла "копирования": tee <file1 file2 file3 >/dev/null Ответ 2 for FILE in "file2" "file3"; do cp file1 $FILE; done Ответ 3 Вы можете использовать shift: file=$1 shift for dest in "[email protected]" ; do cp -r $file $dest done Ответ 4 просто для удовольствия, если вам нужен большой список файлов: tee <sourcefile.jpg targetfiles{01-50}.jpg >/dev/null - Kelvin 12 февраля в 19:52 Но там немного опечатка. Должно быть: tee <sourcefile.jpg targetfiles{01..50}.jpg >/dev/null И как упоминалось выше, это не копирует разрешения. Ответ 5 Самое простое/быстрое решение, о котором я могу думать, это цикл for: for target in file2 file3 do; cp file1 "$target"; done Грязный взломать будет следующим (я настоятельно рекомендую против этого и работает только в bash): eval 'cp file1 '{file2,file3}';' Ответ 6 Вместо этого вы можете использовать стандартные команды сценариев: Bash: for i in file2 file3 ; do cp file1 $i ; done Ответ 7 Используйте что-то вроде следующего. Он работает на zsh. файл cat > firstCopy > secondCopy > thirdCopy или cat file > {1..100} - для имен файлов с номерами. Это хорошо для небольших файлов. Вы должны использовать упомянутый ранее cp script для более крупных файлов.
Ответ 1 ли cp file1 file2 ; cp file1 file3 считать "однострочной командой / script"? Как насчет for file in file2 file3 ; do cp file1 "$file" ; done ? Или, для немного более слабого смысла "копирования": tee <file1 file2 file3 >/dev/null
Ответ 3 Вы можете использовать shift: file=$1 shift for dest in "[email protected]" ; do cp -r $file $dest done
Ответ 4 просто для удовольствия, если вам нужен большой список файлов: tee <sourcefile.jpg targetfiles{01-50}.jpg >/dev/null - Kelvin 12 февраля в 19:52 Но там немного опечатка. Должно быть: tee <sourcefile.jpg targetfiles{01..50}.jpg >/dev/null И как упоминалось выше, это не копирует разрешения.
Ответ 5 Самое простое/быстрое решение, о котором я могу думать, это цикл for: for target in file2 file3 do; cp file1 "$target"; done Грязный взломать будет следующим (я настоятельно рекомендую против этого и работает только в bash): eval 'cp file1 '{file2,file3}';'
Ответ 6 Вместо этого вы можете использовать стандартные команды сценариев: Bash: for i in file2 file3 ; do cp file1 $i ; done
Ответ 7 Используйте что-то вроде следующего. Он работает на zsh. файл cat > firstCopy > secondCopy > thirdCopy или cat file > {1..100} - для имен файлов с номерами. Это хорошо для небольших файлов. Вы должны использовать упомянутый ранее cp script для более крупных файлов.