Подтвердить что ты не робот

Команды Linux для копирования одного файла во многие файлы

Есть ли однострочная команда / script для копирования одного файла во многие файлы в Linux?

cp file1 file2 file3

копирует первые два файла в третий. Есть ли способ скопировать первый файл в остальные?

4b9b3361

Ответ 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 для более крупных файлов.