Проблема с командой установки для копирования всего каталога

Поэтому у меня есть репо с некоторыми моими конфигурационными файлами, и я пытаюсь создать makefile чтобы установить их в homedir. Проблема в том, что когда я запускаю следующую команду прямо в bash

 install -m 755 -d ~/path/to/dotfilesDir/ ~/ 

казалось бы, ничего не происходит

 install -m 755 ~/path/to/dotfilesDir/{file1,file2,...} ~/ 

работает по назначению.

Почему первое (более простое и чистое) решение не работает?

  • Заменить файл тогда и только тогда, когда stdin отличается от содержимого файла
  • Проверьте, работает ли процесс в привилегированном режиме
  • Почему я не могу напечатать переменную, которую я вижу на выходе env?
  • Что такое Linux для $ DECK и $ EOD?
  • Как удалить количество строк из файла повторно
  • Linux: как перенаправить stdout и stderr в logger?
  • Как вы получаете первый файл в каждом подкаталоге, соответствующем списку расширений файлов?
  • Требуется вывод в хорошем формате с использованием сценария оболочки
  • One Solution collect form web for “Проблема с командой установки для копирования всего каталога”

    Из взгляда на страницу руководства кажется, что install не будет делать то, что вы хотите.

    В самом деле, в разделе «Синопсис» указано использование формы:

     install [OPTION]... -d DIRECTORY... 

    и позже, на странице руководства говорится:

    -d, –directory
    рассматривать все аргументы как имена каталогов; создать все компоненты указанных каталогов

    Поэтому мне кажется, что точкой этого варианта является возможность установки сложной (но пустой) структуры каталогов à la mkdir -p ...

    Вы можете выполнить то, что хотите, с помощью цикла:

     for file in /path/to/DotFiles/dir/*;do install -m 755 "$file" ~/ done 

    Или, если в /path/to/DotFiles/dir есть много уровней, вы можете использовать find :

     find /path/to/DotFiles/dir/ -type f -exec 'install -m 755 "{}" ~/' + 
    Linux и Unix - лучшая ОС в мире.