Для изменения разрешения файла я знаю, что могу использовать chmod. Для смены владельца группы я мог бы использовать chgrp. Однако, если я хочу изменить и разрешение, и владельца одновременно, какую-либо команду, которую я мог бы использовать в Linux?
Например, есть файл с этим разрешением и владельцем:
-rw-r--r--+ 1 raymondtau staff 0 May 8 16:38 WantToChangeThisFile
И теперь я хочу изменить это на:
---x-w--wx+ 1 raymondtau admin 0 May 8 16:38 WantToChangeThisFile
Я знаю, что могу использовать эту команду:, chmod 123 WantToChangeThisFile && chgrp admin WantToChangeThisFile
но хочу знать, есть ли какой-нибудь изящный способ сделать это.
ch
.Если вам также нужно скопировать файл куда-нибудь (например, в конечный пункт назначения), вы можете посмотреть на
install
команду:install -m 0777 -o root $sourcefile $destinationfile
источник
Использование правильного инструмента для работы в * nix очень важно, но повторять один и тот же путь в каждой цепочке команд выглядит глупо. Вместо этого вы должны действительно использовать переменные Bash, а в небольших скриптах, особенно, использовать
$_
.Ваша команда станет:
chmod 123 WantToChangeThisFile && chgrp admin $_
ALT +. делает то же самое, вытягивая последний использованный аргумент в вашей текущей оболочке.
источник
Rsync полезен в этом случае:
Из тонкого руководства (ТМ)
--chown = USER: сопоставление простого имени пользователя / группы GROUP
--chmod = CHMOD влияет на права доступа к файлу и / или каталогу
Так, например, вы хотите chmod / mnt / lala / lala4000 / "ugo = rX" и chown "foo.bar"
rsync --chmod = ugo = rX --chown = foo: bar -rvtpolgh / mnt / lala / lala4000 / / mnt / lala / lala4000 /
Это будет рекурсивно сокращено и chmod dir.
источник
Вы могли бы достичь такой цели с длинной
rsync
командойисточник
Вы можете сделать,
chown username:groupname file ...
чтобы изменить оба одновременно. Он изменяет два поля в одной и той же (inode) структуре, поэтому при объединении он сохраняет два системных вызова (одно для чтения текущих значений и одно для установки измененных значений).источник
chown
только меняет владельцев. Как это меняет разрешения одновременно с запросом OP? Примечание. Пример OP также включаетchmod
в себя.источник