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

Это звучит как простой вопрос, но если бы это было, я бы не стал спрашивать об этом. Я, очевидно, могу это сделать, открыв все папки в наутилусе и вставляя их отдельно, но компьютер - это робот, а не я (я говорю о 500 файлах).

Итак, есть ли способ сделать это более эффективно с помощью gui или командной строки?

Если вы почувствуете себя лучше, вы будете спасать бедный «V» ключ от сурового наказания.

5
задан 23 March 2011 в 04:00

30 ответов

Если папки находятся в той же папке, в которой находится файл, используйте:

for dir in *; do [ -d "$dir" ] && cp YOURFILE.EXT "$dir" ; done

В других сценариях, если файл находится по другому пути, используйте:

for i in folder1 folder2 folder3 folder4; do cp YOURFILE.EXT $i; done

Если вы не знаете, какие именно имена папок для размещения файла, попробуйте:

Нет необходимости создавать скрипт. Просто отбросьте эти команды в терминале и проверьте результаты.

Глоссарий:

YOURFILE.EXT = The name of your file, may contain the full path.
folder1 folder[...] = the name of the folders where to drop the file,
-- folder names may contain the full path.
6
ответ дан 25 May 2018 в 22:26
  • 1
    Почему именно мы не должны комментировать ваш ответ? – Adam Byrtek 23 March 2011 в 14:18
  • 2
    Не стесняйтесь публиковать свои комментарии, но если у вас есть лучшее решение, то ваши предложения не для меня, а для владельца вопроса. Если вы проверите мои предыдущие ответы, многие люди сказали что-то вроде: «мое решение лучше». и прошу проголосовать за мое предложение, но они не осмеливаются отказаться от своего решения в ответ, поведение которого ведет к просто конфронтации (с которой я действительно не сталкиваюсь) и не приводят к получению хорошего решения. – Geppettvs D'Constanzo 23 March 2011 в 20:15
  • 3
    Благодаря Geppettvs первая команда была победительницей только записки для других, она не будет работать над самбой, вам нужно будет заменить cp на gvfs-copy – Allan 23 March 2011 в 23:27
  • 4
    Не беспокойтесь об этом, если ваше решение будет хорошим, тогда оно будет одобрено / принято, как в этом случае. Иногда комментарий может улучшить решение, вам не нужно рассматривать их как личную атаку. – Adam Byrtek 24 March 2011 в 01:59

Если папки находятся в той же папке, в которой находится файл, используйте:

for dir in *; do [ -d "$dir" ] && cp YOURFILE.EXT "$dir" ; done

В других сценариях, если файл находится по другому пути, используйте:

for i in folder1 folder2 folder3 folder4; do cp YOURFILE.EXT $i; done

Если вы не знаете, какие именно имена папок для размещения файла, попробуйте:

Нет необходимости создавать скрипт. Просто отбросьте эти команды в терминале и проверьте результаты.

Глоссарий:

YOURFILE.EXT = The name of your file, may contain the full path. folder1 folder[...] = the name of the folders where to drop the file, -- folder names may contain the full path.
6
ответ дан 25 July 2018 в 22:19

Если папки находятся в той же папке, в которой находится файл, используйте:

for dir in *; do [ -d "$dir" ] && cp YOURFILE.EXT "$dir" ; done

В других сценариях, если файл находится по другому пути, используйте:

for i in folder1 folder2 folder3 folder4; do cp YOURFILE.EXT $i; done

Если вы не знаете, какие именно имена папок для размещения файла, попробуйте:

Нет необходимости создавать скрипт. Просто отбросьте эти команды в терминале и проверьте результаты.

Глоссарий:

YOURFILE.EXT = The name of your file, may contain the full path. folder1 folder[...] = the name of the folders where to drop the file, -- folder names may contain the full path.
6
ответ дан 26 July 2018 в 20:36

Если папки находятся в той же папке, в которой находится файл, используйте:

for dir in *; do [ -d "$dir" ] && cp YOURFILE.EXT "$dir" ; done

В других сценариях, если файл находится по другому пути, используйте:

for i in folder1 folder2 folder3 folder4; do cp YOURFILE.EXT $i; done

Если вы не знаете, какие именно имена папок для размещения файла, попробуйте:

Нет необходимости создавать скрипт. Просто отбросьте эти команды в терминале и проверьте результаты.

Глоссарий:

YOURFILE.EXT = The name of your file, may contain the full path. folder1 folder[...] = the name of the folders where to drop the file, -- folder names may contain the full path.
6
ответ дан 31 July 2018 в 12:33

Если папки находятся в той же папке, в которой находится файл, используйте:

for dir in *; do [ -d "$dir" ] && cp YOURFILE.EXT "$dir" ; done

В других сценариях, если файл находится по другому пути, используйте:

for i in folder1 folder2 folder3 folder4; do cp YOURFILE.EXT $i; done

Если вы не знаете, какие именно имена папок для размещения файла, попробуйте:

Нет необходимости создавать скрипт. Просто отбросьте эти команды в терминале и проверьте результаты.

Глоссарий:

YOURFILE.EXT = The name of your file, may contain the full path. folder1 folder[...] = the name of the folders where to drop the file, -- folder names may contain the full path.
6
ответ дан 2 August 2018 в 03:46

Если папки находятся в той же папке, в которой находится файл, используйте:

for dir in *; do [ -d "$dir" ] && cp YOURFILE.EXT "$dir" ; done

В других сценариях, если файл находится по другому пути, используйте:

for i in folder1 folder2 folder3 folder4; do cp YOURFILE.EXT $i; done

Если вы не знаете, какие именно имена папок для размещения файла, попробуйте:

Нет необходимости создавать скрипт. Просто отбросьте эти команды в терминале и проверьте результаты.

Глоссарий:

YOURFILE.EXT = The name of your file, may contain the full path. folder1 folder[...] = the name of the folders where to drop the file, -- folder names may contain the full path.
6
ответ дан 4 August 2018 в 19:50

Если папки находятся в той же папке, в которой находится файл, используйте:

  для dir in *;  do [-d "$ dir"] & amp; & amp; & amp;  cp YOURFILE.EXT "$ dir";  done  

В других сценариях, если файл находится по другому пути, используйте:

  для i в папке 1 folder2 folder3 folder4;  do cp YOURFILE.EXT $ i;  done  

Если вы не знаете, какие именно имена папок, куда поместить файл, попробуйте:

Нет необходимости создавать скрипт. Просто отбросьте эти команды в терминале и проверьте результаты.

Глоссарий:

  YOURFILE.EXT = Имя вашего файла может содержать полный путь.  folder1 folder [...] = имя папок, куда следует удалить файл, - имена папок могут содержать полный путь.   
6
ответ дан 6 August 2018 в 03:54

Если папки находятся в той же папке, в которой находится файл, используйте:

  для dir in *;  do [-d "$ dir"] & amp; & amp; & amp;  cp YOURFILE.EXT "$ dir";  done  

В других сценариях, если файл находится по другому пути, используйте:

  для i в папке 1 folder2 folder3 folder4;  do cp YOURFILE.EXT $ i;  done  

Если вы не знаете, какие именно имена папок, куда поместить файл, попробуйте:

Нет необходимости создавать скрипт. Просто отбросьте эти команды в терминале и проверьте результаты.

Глоссарий:

  YOURFILE.EXT = Имя вашего файла может содержать полный путь.  folder1 folder [...] = имя папок, куда следует удалить файл, - имена папок могут содержать полный путь.   
6
ответ дан 7 August 2018 в 21:50

Если папки находятся в той же папке, в которой находится файл, используйте:

  для dir in *;  do [-d "$ dir"] & amp; & amp; & amp;  cp YOURFILE.EXT "$ dir";  done  

В других сценариях, если файл находится по другому пути, используйте:

  для i в папке 1 folder2 folder3 folder4;  do cp YOURFILE.EXT $ i;  done  

Если вы не знаете, какие именно имена папок, куда поместить файл, попробуйте:

Нет необходимости создавать скрипт. Просто отбросьте эти команды в терминале и проверьте результаты.

Глоссарий:

  YOURFILE.EXT = Имя вашего файла может содержать полный путь.  folder1 folder [...] = имя папок, куда следует удалить файл, - имена папок могут содержать полный путь.   
6
ответ дан 10 August 2018 в 10:05

Если папки находятся в той же папке, в которой находится файл, используйте:

  для dir in *;  do [-d "$ dir"] & amp; & amp; & amp;  cp YOURFILE.EXT "$ dir";  done  

В других сценариях, если файл находится по другому пути, используйте:

  для i в папке 1 folder2 folder3 folder4;  do cp YOURFILE.EXT $ i;  done  

Если вы не знаете, какие именно имена папок, куда поместить файл, попробуйте:

Нет необходимости создавать скрипт. Просто отбросьте эти команды в терминале и проверьте результаты.

Глоссарий:

  YOURFILE.EXT = Имя вашего файла может содержать полный путь.  folder1 folder [...] = имя папок, куда следует удалить файл, - имена папок могут содержать полный путь.   
6
ответ дан 13 August 2018 в 16:25
  • 1
    Почему именно мы не должны комментировать ваш ответ? – Adam Byrtek 23 March 2011 в 14:18
  • 2
    Не стесняйтесь публиковать свои комментарии, но если у вас есть лучшее решение, то ваши предложения не для меня, а для владельца вопроса. Если вы проверите мои предыдущие ответы, многие люди сказали что-то вроде: «мое решение лучше». и прошу проголосовать за мое предложение, но они не осмеливаются отказаться от своего решения в ответ, поведение которого ведет к просто конфронтации (с которой я действительно не сталкиваюсь) и не приводят к получению хорошего решения. – Geppettvs D'Constanzo 23 March 2011 в 20:15
  • 3
    Благодаря Geppettvs первая команда была победительницей только записки для других, она не будет работать над самбой, вам нужно будет заменить cp на gvfs-copy – Allan 23 March 2011 в 23:27
  • 4
    Не беспокойтесь об этом, если ваше решение будет хорошим, тогда оно будет одобрено / принято, как в этом случае. Иногда комментарий может улучшить решение, вам не нужно рассматривать их как личную атаку. – Adam Byrtek 24 March 2011 в 01:59

Я могу сделать 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, а затем хотел бы с ним похож, например touch {jan, feb, mar} - {Rep.xls, graph.xls} с помощью cp 1.ods {jan, feb , mar} {Rep.ods, graph.ods}, но это не работает. cp: target `margraph.ods 'не является каталогом SO im, который также заинтересован в этом

0
ответ дан 25 May 2018 в 22:26

найти. -тип d | xargs -I {} cp ./myfile {} /

Вот как я получил работу.

Вот проблема, которую я решил решить. Я хочу протестировать все свои новые виртуальные хосты перед установкой реальных приложений.

pwd /var/www/ find . -type d . ./site1 ./site2 ./site3 find . -type d | xargs -I{} cp ./php.info {}/ ls ./* ./php.info ./site1: php.info ./site2: php.info ./site3: php.info
0
ответ дан 25 May 2018 в 22:26

Я могу сделать 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, а затем хотел, чтобы он с ним похож, например touch {jan, feb, mar} - {Rep.xls, graph.xls}, используя cp 1.ods {jan, feb , mar} {Rep.ods, graph.ods}, но это не работает. cp: target `margraph.ods 'не является каталогом SO im, который также заинтересован в этом

0
ответ дан 25 July 2018 в 22:19

найти. -тип d | xargs -I {} cp ./myfile {} /

Вот как я получил работу.

Вот проблема, которую я решил решить. Я хочу протестировать все свои новые виртуальные хосты перед установкой реальных приложений.

pwd /var/www/ find . -type d . ./site1 ./site2 ./site3 find . -type d | xargs -I{} cp ./php.info {}/ ls ./* ./php.info ./site1: php.info ./site2: php.info ./site3: php.info
0
ответ дан 25 July 2018 в 22:19

Я могу сделать 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, а затем хотел бы с ним похож, например touch {jan, feb, mar} - {Rep.xls, graph.xls} с помощью cp 1.ods {jan, feb , mar} {Rep.ods, graph.ods}, но это не работает. cp: target `margraph.ods 'не является каталогом SO im, который также заинтересован в этом

0
ответ дан 26 July 2018 в 20:36

найти. -тип d | xargs -I {} cp ./myfile {} /

Вот как я получил работу.

Вот проблема, которую я решил решить. Я хочу протестировать все свои новые виртуальные хосты перед установкой реальных приложений.

pwd /var/www/ find . -type d . ./site1 ./site2 ./site3 find . -type d | xargs -I{} cp ./php.info {}/ ls ./* ./php.info ./site1: php.info ./site2: php.info ./site3: php.info
0
ответ дан 26 July 2018 в 20:36

Я могу сделать 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, а затем хотел бы с ним похож, например touch {jan, feb, mar} - {Rep.xls, graph.xls} с помощью cp 1.ods {jan, feb , mar} {Rep.ods, graph.ods}, но это не работает. cp: target `margraph.ods 'не является каталогом SO im, который также заинтересован в этом

0
ответ дан 31 July 2018 в 12:33

найти. -тип d | xargs -I {} cp ./myfile {} /

Вот как я получил работу.

Вот проблема, которую я решил решить. Я хочу протестировать все свои новые виртуальные хосты перед установкой реальных приложений.

pwd /var/www/ find . -type d . ./site1 ./site2 ./site3 find . -type d | xargs -I{} cp ./php.info {}/ ls ./* ./php.info ./site1: php.info ./site2: php.info ./site3: php.info
0
ответ дан 31 July 2018 в 12:33

Я могу сделать 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, а затем хотел бы с ним похож, например touch {jan, feb, mar} - {Rep.xls, graph.xls} с помощью cp 1.ods {jan, feb , mar} {Rep.ods, graph.ods}, но это не работает. cp: target `margraph.ods 'не является каталогом SO im, который также заинтересован в этом

0
ответ дан 2 August 2018 в 03:46

найти. -тип d | xargs -I {} cp ./myfile {} /

Вот как я получил работу.

Вот проблема, которую я решил решить. Я хочу протестировать все свои новые виртуальные хосты перед установкой реальных приложений.

pwd /var/www/ find . -type d . ./site1 ./site2 ./site3 find . -type d | xargs -I{} cp ./php.info {}/ ls ./* ./php.info ./site1: php.info ./site2: php.info ./site3: php.info
0
ответ дан 2 August 2018 в 03:46

Я могу сделать 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, а затем хотел бы с ним похож, например touch {jan, feb, mar} - {Rep.xls, graph.xls} с помощью cp 1.ods {jan, feb , mar} {Rep.ods, graph.ods}, но это не работает. cp: target `margraph.ods 'не является каталогом SO im, который также заинтересован в этом

0
ответ дан 4 August 2018 в 19:50

найти. -тип d | xargs -I {} cp ./myfile {} /

Вот как я получил работу.

Вот проблема, которую я решил решить. Я хочу протестировать все свои новые виртуальные хосты перед установкой реальных приложений.

pwd /var/www/ find . -type d . ./site1 ./site2 ./site3 find . -type d | xargs -I{} cp ./php.info {}/ ls ./* ./php.info ./site1: php.info ./site2: php.info ./site3: php.info
0
ответ дан 4 August 2018 в 19:50

Я могу сделать 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, а затем хотел бы с ним похож, например touch {jan, feb, mar} - {Rep.xls, graph.xls} с помощью cp 1.ods {jan, feb , mar} {Rep.ods, graph.ods}, но это не работает. cp: target `margraph.ods 'не является каталогом SO im, который также заинтересован в этом

0
ответ дан 6 August 2018 в 03:54

найти. -тип d | xargs -I {} cp ./myfile {} /

Вот как я получил работу.

Вот проблема, которую я решил решить. Я хочу протестировать все свои новые виртуальные хосты перед установкой реальных приложений.

 pwd / var / www / find.  Тип d.  ./site1 ./site2 ./site3 find.  -тип d |  xargs -I {} cp ./php.info {} / ls ./* ./php.info ./site1: php.info ./site2: php.info ./site3: php.info 
0
ответ дан 6 August 2018 в 03:54

найти. -тип d | xargs -I {} cp ./myfile {} /

Вот как я получил работу.

Вот проблема, которую я решил решить. Я хочу протестировать все свои новые виртуальные хосты перед установкой реальных приложений.

 pwd / var / www / find.  Тип d.  ./site1 ./site2 ./site3 find.  -тип d |  xargs -I {} cp ./php.info {} / ls ./* ./php.info ./site1: php.info ./site2: php.info ./site3: php.info 
0
ответ дан 7 August 2018 в 21:50

Я могу сделать 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, а затем хотел бы с ним похож, например touch {jan, feb, mar} - {Rep.xls, graph.xls} с помощью cp 1.ods {jan, feb , mar} {Rep.ods, graph.ods}, но это не работает. cp: target `margraph.ods 'не является каталогом SO im, который также заинтересован в этом

0
ответ дан 7 August 2018 в 21:50

Я могу сделать 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, а затем хотел бы с ним похож, например touch {jan, feb, mar} - {Rep.xls, graph.xls} с помощью cp 1.ods {jan, feb , mar} {Rep.ods, graph.ods}, но это не работает. cp: target `margraph.ods 'не является каталогом SO im, который также заинтересован в этом

0
ответ дан 10 August 2018 в 10:05

найти. -тип d | xargs -I {} cp ./myfile {} /

Вот как я получил работу.

Вот проблема, которую я решил решить. Я хочу протестировать все свои новые виртуальные хосты перед установкой реальных приложений.

 pwd / var / www / find.  Тип d.  ./site1 ./site2 ./site3 find.  -тип d |  xargs -I {} cp ./php.info {} / ls ./* ./php.info ./site1: php.info ./site2: php.info ./site3: php.info 
0
ответ дан 10 August 2018 в 10:05

найти. -тип d | xargs -I {} cp ./myfile {} /

Вот как я получил работу.

Вот проблема, которую я решил решить. Я хочу протестировать все свои новые виртуальные хосты перед установкой реальных приложений.

 pwd / var / www / find.  Тип d.  ./site1 ./site2 ./site3 find.  -тип d |  xargs -I {} cp ./php.info {} / ls ./* ./php.info ./site1: php.info ./site2: php.info ./site3: php.info 
0
ответ дан 13 August 2018 в 16:25

Я могу сделать 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, а затем хотел бы с ним похож, например touch {jan, feb, mar} - {Rep.xls, graph.xls} с помощью cp 1.ods {jan, feb , mar} {Rep.ods, graph.ods}, но это не работает. cp: target `margraph.ods 'не является каталогом SO im, который также заинтересован в этом

0
ответ дан 13 August 2018 в 16:25

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

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