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

Команда touch {jan,feb,mar}-{Rep.xls,graph.xls} создает файлы, которые я не могу открыть:

feb-graph.xls jan-Rep.xls feb-Rep.xls mar-graph.xls jan-graph.xls mar- Rep.xls

Итак, я создал один файл шаблона 1.ods, сохраненный с помощью OO-Calc. Затем я попытался скопировать этот файл с помощью cp снова таким же образом, как cp:

cp 1.ods {jan,feb,mar}{Rep.ods,graph.ods}

, но это не работает:

cp: target `margraph.ods 'не является каталогом

Как скопировать один файл в несколько файлов?

5
задан 26 May 2011 в 20:24

16 ответов

Объедините cat (извлекает содержимое файла) с помощью tee (записывает содержимое в файлы, указанные в аргументах):

cat 1.ods | tee {jan,feb,mar}-{Rep,graph}.ods >/dev/null

Альтернатива с использованием перенаправления оболочки:

tee {jan,feb,mar}-{Rep,graph}.ods >/dev/null < 1.ods

В обоих случаях > /dev/null является перенаправлением, которое отбрасывает дублированное содержимое (tee записывает свой вход в каждый параметр и стандартный вывод).

13
ответ дан 25 July 2018 в 21:50
  • 1
    +1, хорошо тоже! Я, кажется, склонен к петлям ;-) – nik 26 May 2011 в 20:23
  • 2
    @nik: мой предыдущий ответ включал цикл for, но этот однострочный шрифт более понятен – Lekensteyn 26 May 2011 в 20:26

Объедините cat (извлекает содержимое файла) с помощью tee (записывает содержимое в файлы, указанные в аргументах):

cat 1.ods | tee {jan,feb,mar}-{Rep,graph}.ods >/dev/null

Альтернатива с использованием перенаправления оболочки:

tee {jan,feb,mar}-{Rep,graph}.ods >/dev/null < 1.ods

В обоих случаях > /dev/null является перенаправлением, которое отбрасывает дублированное содержимое (tee записывает свой вход в каждый параметр и стандартный вывод).

13
ответ дан 31 July 2018 в 12:27

Объедините cat (извлекает содержимое файла) с помощью tee (записывает содержимое в файлы, указанные в аргументах):

cat 1.ods | tee {jan,feb,mar}-{Rep,graph}.ods >/dev/null

Альтернатива с использованием перенаправления оболочки:

tee {jan,feb,mar}-{Rep,graph}.ods >/dev/null < 1.ods

В обоих случаях > /dev/null является перенаправлением, которое отбрасывает дублированное содержимое (tee записывает свой вход в каждый параметр и стандартный вывод).

13
ответ дан 2 August 2018 в 03:26

Объедините cat (извлекает содержимое файла) с помощью tee (записывает содержимое в файлы, указанные в аргументах):

cat 1.ods | tee {jan,feb,mar}-{Rep,graph}.ods >/dev/null

Альтернатива с использованием перенаправления оболочки:

tee {jan,feb,mar}-{Rep,graph}.ods >/dev/null < 1.ods

В обоих случаях > /dev/null является перенаправлением, которое отбрасывает дублированное содержимое (tee записывает свой вход в каждый параметр и стандартный вывод).

13
ответ дан 4 August 2018 в 19:23

Объедините cat (извлекает содержимое файла) с помощью tee (записывает содержимое в файлы, указанные в аргументах):

cat 1.ods | tee {jan,feb,mar}-{Rep,graph}.ods >/dev/null

Альтернатива с использованием перенаправления оболочки:

tee {jan,feb,mar}-{Rep,graph}.ods >/dev/null < 1.ods

В обоих случаях > /dev/null является перенаправлением, которое отбрасывает дублированное содержимое (tee записывает свой вход в каждый параметр и стандартный вывод).

13
ответ дан 6 August 2018 в 03:34

Объединить cat (извлекает содержимое файла) с помощью tee (записывает содержимое в файлы, указанные в аргументах):

   cat 1.ods |  tee {jan, feb, mar} - {Rep, graph} .ods & gt; / dev / null  

Альтернатива с использованием перенаправления оболочки:

  tee {  jan, feb, mar} - {Rep, graph} .ods & gt; / dev / null & lt;  1.ods  

В обоих случаях & gt; / dev / null - это перенаправление, которое отбрасывает дублированное содержимое ( tee записывает свой ввод в каждый параметр и стандартный вывод).

13
ответ дан 7 August 2018 в 21:23

Объединить cat (извлекает содержимое файла) с помощью tee (записывает содержимое в файлы, указанные в аргументах):

   cat 1.ods |  tee {jan, feb, mar} - {Rep, graph} .ods & gt; / dev / null  

Альтернативный вариант с использованием перенаправления оболочки:

  tee {  jan, feb, mar} - {Rep, graph} .ods & gt; / dev / null & lt;  1.ods  

В обоих случаях & gt; / dev / null - это перенаправление, которое отбрасывает дублированное содержимое ( tee записывает свой ввод в каждый параметр и стандартный вывод).

13
ответ дан 10 August 2018 в 09:41

Объединить cat (извлекает содержимое файла) с помощью tee (записывает содержимое в файлы, указанные в аргументах):

   cat 1.ods |  tee {jan, feb, mar} - {Rep, graph} .ods & gt; / dev / null  

Альтернатива с использованием перенаправления оболочки:

  tee {  jan, feb, mar} - {Rep, graph} .ods & gt; / dev / null & lt;  1.ods  

В обоих случаях & gt; / dev / null - это перенаправление, которое отбрасывает дублированное содержимое ( tee записывает свой ввод в каждый параметр и стандартный вывод).

13
ответ дан 13 August 2018 в 15:53
  • 1
    +1, хорошо тоже! Я, кажется, склонен к for-loops ; -) – nik 26 May 2011 в 20:23
  • 2
    @nik: мой предыдущий ответ включал цикл for, но этот однострочный шрифт более понятен – Lekensteyn 26 May 2011 в 20:26

Как насчет

for file in {jan,feb,mar}-{Rep.xls,graph.xls} do cp 1.ods $file done
4
ответ дан 25 July 2018 в 21:50
  • 1
    Как это выполняется? Каким должен быть тип выполнения или язык или тип файла? – Kangarooo 4 August 2015 в 07:06
  • 2
    Это сценарий bash. Это можно выполнить в оболочке или сохранить в файл .sh и выполнить ее – Rufus_12 12 April 2016 в 10:51

Как насчет

for file in {jan,feb,mar}-{Rep.xls,graph.xls} do cp 1.ods $file done
4
ответ дан 31 July 2018 в 12:27
  • 1
    Как это выполняется? Каким должен быть тип выполнения или язык или тип файла? – Kangarooo 4 August 2015 в 07:06
  • 2
    Это сценарий bash. Это можно выполнить в оболочке или сохранить в файл .sh и выполнить ее – Rufus_12 12 April 2016 в 10:51

Как насчет

for file in {jan,feb,mar}-{Rep.xls,graph.xls} do cp 1.ods $file done
4
ответ дан 2 August 2018 в 03:26
  • 1
    Как это выполняется? Каким должен быть тип выполнения или язык или тип файла? – Kangarooo 4 August 2015 в 07:06
  • 2
    Это сценарий bash. Это можно выполнить в оболочке или сохранить в файл .sh и выполнить ее – Rufus_12 12 April 2016 в 10:51

Как насчет

for file in {jan,feb,mar}-{Rep.xls,graph.xls} do cp 1.ods $file done
4
ответ дан 4 August 2018 в 19:23
  • 1
    Как это выполняется? Каким должен быть тип выполнения или язык или тип файла? – Kangarooo 4 August 2015 в 07:06
  • 2
    Это сценарий bash. Это можно выполнить в оболочке или сохранить в файл .sh и выполнить ее – Rufus_12 12 April 2016 в 10:51

Как насчет

for file in {jan,feb,mar}-{Rep.xls,graph.xls} do cp 1.ods $file done
4
ответ дан 6 August 2018 в 03:34
  • 1
    Как это выполняется? Каким должен быть тип выполнения или язык или тип файла? – Kangarooo 4 August 2015 в 07:06
  • 2
    Это сценарий bash. Это можно выполнить в оболочке или сохранить в файл .sh и выполнить ее – Rufus_12 12 April 2016 в 10:51

Как насчет

 для файла в {jan, feb, mar} - {Rep.xls, graph.xls} выполнить cp 1.ods $ file done 
4
ответ дан 7 August 2018 в 21:23

Как насчет

 для файла в {jan, feb, mar} - {Rep.xls, graph.xls} выполнить cp 1.ods $ file done 
4
ответ дан 10 August 2018 в 09:41

Как насчет

 для файла в {jan, feb, mar} - {Rep.xls, graph.xls} выполнить cp 1.ods $ file done 
4
ответ дан 13 August 2018 в 15:53
  • 1
    Как это выполняется? Каким должен быть тип выполнения или язык или тип файла? – Kangarooo 4 August 2015 в 07:06
  • 2
    Это сценарий bash. Это можно выполнить в оболочке или сохранить в файл .sh и выполнить ее – Rufus_12 12 April 2016 в 10:51

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

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