Удивительно, но со встроенной -опцией rsync это невозможно!
Это может сработать:
rsync -an --info=name src dest \
| rsync -an --info=name --checksum --files-from - src dest
Пояснение:
Первая команда rsync использует режим rsync по умолчанию для проверки времени и размера. Он выводит любой каталог или имя файла с другим временем или размером. Из-за флага -n файлы не передаются.
Вторая команда rsync берет список файлов с измененным временем или размером из первого rsync, а затем снова запускает rsync только для тех файлов с аргументом контрольной суммы --.
Вторая команда имеет -n для пробного режима, поэтому будут напечатаны только имена файлов. Удалите -n из второй команды, чтобы действительно передать файлы.
Когда вы запускаете sudo su username
или, что более разумно в большинстве случаев, sudo -u username
, все, что вы делаете, это запускаете новую оболочку как username
. Вы не root, вы - имя пользователя, поэтому для того, чтобы теперь запустить команду sudo
от имени пользователя, вам потребуется пароль имени пользователя.
Однако, если вы хотите запустить apt
, то нет смысла входить в систему под именем пользователя, поскольку запустить его может только root. Все, что вам нужно, это напрямую запустить sudo apt...
из вашей обычной учетной записи, и это будет то же самое, что запустить sudo apt...
от имени пользователя.
Если ваш пользователь уже добавлен в файл sudoers, выполните
1 )sudo su, он запросит пароль, вы даете свой пароль пользователя, затем он перейдет к вашей корневой учетной записи, оттуда вы можете запустить «apt...»
2 )sudo apt..., он запросит ваш пароль, дайте ваш пароль пользователя, затем он выполнит команду.