Чтобы узнать, в каких группах вы состоите, попробуйте группы
. Наличие у вас доступа к sudo
зависит от вашей локальной конфигурации.
Если при запуске групп
вы не видите wheel
или администраторов
персонал
или группу, специально созданную для sudo
], то вам, вероятно, не были автоматически предоставлены права sudo
-ing. Обратите внимание, что их также можно добавить через конфигурацию sudo
.
С zsh
5.6 или выше (для наносекундной точности )вы могли бы сделать это со встроенными только с помощью:
zmodload zsh/stat
if
stat -LA lnktime -F '%021s%N' +mtime -- $lnkfile &&
stat -A reftime -F '%021s%N' +mtime -- $reffile &&
[[ $lnktime < $reftime ]]
then
print -r -- $lnkfile is older than $reffile
fi
Это будет работать независимо от того, какие символы или не -символы содержат имена файлов, и сравнивать метки времени с точностью до наносекунды.
Мы сравниваем временные метки в виде строк (количество наносекунд в виде десятичной строки, представленной нулем -дополненной 30 цифрами )вместо чисел с плавающей запятой, поскольку типичные числа с плавающей запятой двойной точности для x86 _64 ПК под управлением GNU/Linux, по крайней мере, не обладают достаточной точностью для хранения таких чисел, как 1548195897.775033155
, так что вы не сможете отличить два файла, измененных сегодня, за одни и те же 100 наносекунд.
$ ((1548195897.775033155 < 1548195897.775033255)) && echo yes
$ [[ 1548195897775033155 < 1548195897775033255 ]] && echo yes
yes
Насколько я знаю, bash не предлагает никаких версий-ot
(и подобных ), которые избегают разыменования символических ссылок.
Вместо этого вы можете использовать GNU stat (, который не разыменовывает символические ссылки без-L
)и численно сравнивает их эпохи mtime:
if (( "$(stat --format=%Z lnkfile)" < "$(stat --format=%Z reffile)" )); then
# lnkfile is older
fi