Да. Вот --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: -
Это похоже install -D
команда на самом деле, что я хочу.
Страница справочника:
- D создают все ведущие компоненты DEST кроме последнего, затем копируют ИСТОЧНИК в DEST
Работает отлично, кроме Вас должны указать каждый файл индивидуально.
install -d
просто используется для создания каталогов. Вы сказали этому создавать два каталога, test
и test2
. test
уже существовал, таким образом, все, что это должно было сделать, было, делают test2
. Я не думаю install
поддержки, копирующие все деревья каталогов; это обычно используется на файлах. Вероятно, необходимо использовать cp
install -d
совпадает с mkdir
за исключением того, что можно указать режим, владельца, контекст SELinux и группу внезапно.
– ZiggyTheHamster
28.08.2017, 22:40
Обычно вам нужно установить файлы в правильную папку, не повторяясь.Вы можете использовать функцию «найти и установить», чтобы ваши сценарии установки были более сухими
.find SOURCE/ -type f -exec install -vDm 755 {} THERE/{} \;
cp -r
– dtmland 08.07.2015, 23:11cp -r
? – Alexander 08.07.2016, 13:53