“Установка” GNU-d флаг — как это - работа?

Да. Вот --help:

$ su --help
Usage: su [options] [LOGIN]

Options:
  -c, --command COMMAND         pass COMMAND to the invoked shell
  -h, --help                    display this help message and exit
  -, -l, --login                make the shell a login shell
  -m, -p,
  --preserve-environment        do not reset environment variables, and
                                keep the same shell
  -s, --shell SHELL             use SHELL instead of the default in passwd

И некоторое тестирование (я использовал sudo поскольку я не знаю пароля для nobody учетная запись)

$ sudo su -c whoami nobody
[sudo] password for oli: 
nobody

Когда Ваша команда берет аргументы, необходимо заключить ее в кавычки. Если Вы не сделаете, то странные вещи произойдут. Здесь я — как корень — пытающийся создать каталог в/home/oli (как oli), не заключая полную команду в кавычки:

# su -c mkdir /home/oli/java oli
No passwd entry for user '/home/oli/java'

Это только читается mkdir как значение для -c флаг и это пытаются использовать /home/oli/java как имя пользователя. Если мы заключаем его в кавычки, это просто работает:

# su -c "mkdir /home/oli/java" oli
# stat /home/oli/java
  File: ‘/home/oli/java’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 811h/2065d  Inode: 5817025     Links: 2
Access: (0775/drwxrwxr-x)  Uid: ( 1000/     oli)   Gid: ( 1000/     oli)
Access: 2016-02-16 10:49:15.467375905 +0000
Modify: 2016-02-16 10:49:15.467375905 +0000
Change: 2016-02-16 10:49:15.467375905 +0000
 Birth: -
26
22.10.2014, 19:16
3 ответа

Это похоже install -D команда на самом деле, что я хочу.

Страница справочника:

- D создают все ведущие компоненты DEST кроме последнего, затем копируют ИСТОЧНИК в DEST

Работает отлично, кроме Вас должны указать каждый файл индивидуально.

19
27.01.2020, 19:40
  • 1
    я был взволнован вплоть до конца, "необходимо указать каждый файл индивидуально". Угадайте, что я буду придерживаться с cp -r –  dtmland 08.07.2015, 23:11
  • 2
    Делает команду установки, имеют эквивалент cp -r? –  Alexander 08.07.2016, 13:53

install -d просто используется для создания каталогов. Вы сказали этому создавать два каталога, test и test2. test уже существовал, таким образом, все, что это должно было сделать, было, делают test2. Я не думаю install поддержки, копирующие все деревья каталогов; это обычно используется на файлах. Вероятно, необходимо использовать cp

14
27.01.2020, 19:40
  • 1
    В основном, install -d совпадает с mkdir за исключением того, что можно указать режим, владельца, контекст SELinux и группу внезапно. –  ZiggyTheHamster 28.08.2017, 22:40

Обычно вам нужно установить файлы в правильную папку, не повторяясь.Вы можете использовать функцию «найти и установить», чтобы ваши сценарии установки были более сухими

.
find SOURCE/ -type f -exec install -vDm 755 {} THERE/{} \;
3
27.01.2020, 19:40

Теги

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