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

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

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

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

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

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

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

  • Предоставлять строки, хранящиеся в файле, в виде списка аргументов для команды?
  • Как Linux работает со сценариями оболочки?
  • wget пакетный файл linux
  • Баш-оболочка, запущенная forkpty (), порождает дочерние процессы, игнорирующие SIGINT. Почему и как я могу гарантировать, что SIGINT не игнорируется?
  • Сценарий Bash, использующий чтение, должен прекратить выполнение на Ctrl + D
  • Могу ли я отслеживать тире скрипта без изменения его исходного кода?
  • Способ вставки определенного столбца, когда в терминале
  • ImageMagick для нескольких файлов
  • 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 - лучшая ОС в мире.