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

Как я могу скопировать файл greetings.text и вставьте его содержание в 1.txt, 2.txt, 3.txt, 4.txt и 5.txt?

$ cat greetings.text  
Hello  
Hello  
Hello  
Hello  
Hello  
0
задан 8 October 2018 в 23:04

4 ответа

Можно использовать tee:

< greetings.text tee {1..5}.txt

Использование tee -a, если Вы хотите добавить в файлы, а не перезаписать их.

8
ответ дан 22 September 2019 в 22:45

Используйте

cat greetings.text | tee {1..5}.txt

или

for i in {1..5} ; do cp greetings.text $i.txt ; done
2
ответ дан 22 September 2019 в 22:45

Используйте cp в цикле:

src=greetings.txt
for dst in {1..5}.txt; do
    cp -T -- "$src" "$dst"
done

, Если Вы добавляете --reflink, опция, cp даст системе конечного файла команду пытаться создать “shallow” копию файлов, которая только копирует блоки данных, когда что-то изменяет их. Эту технику называют копия на записи .

1
ответ дан 22 September 2019 в 22:45

Если содержание должно остаться тем же (т.е. Вы не означаете обновлять скопированные файлы), можно использовать гибкие или жесткие ссылки:

for i in {00..05} ; do ln greetings.text $i.txt ; done

Копия затем мгновенна даже с большими файлами, и Вы не будете использовать дополнительного дискового пространства с копиями (я использовал это, когда я выполнял тесты с файлами на 200 ГБ). Содержание файла доступно, пока последний из copies+original не rm - редактор

0
ответ дан 22 September 2019 в 22:45

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

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