Те системы, которые позволяют непривилегированным пользователям выключать систему, обычно делают это только для пользователей, которые вошли в систему локально, то есть пользователей, которые имеют физический доступ к машине и могут, например, с таким же успехом потянуть шнур питания или нажать кнопку кнопка/переключатель питания.
В таком случае лучше позволить им отключить систему, чтобы это можно было сделать корректно и чтобы у нас была запись о том, кто инициировал отключение.
Там, где источник электроэнергии может быть защищен, а доступ к кнопке питания для обычных пользователей удален, как правило, эту возможность можно исключить.
Вы можете попробовать следующий цикл for:
for d in parentfolder/* ; do
cp "$d/subfolder/map.png" "$d.png"
done
Вы должны запускать его, когда ваш текущий каталог находится на том же уровне, что и parentfolder
.
Zsh поставляется с утилитой zmv
, которая удобна для переименования и копирования файлов на основе шаблона -. Поместите это в свой .zshrc
, если у вас его еще нет :
autoload -U zmv
alias zcp='zmv -C'
alias zln='zmv -L'
(Или запустите эти команды в сеансе оболочки, чтобы включить их только для этого сеанса.)
Затем (изparentfolder
):
zcp '(*)/subfolder/map.png' '$1.png'
Первый аргумент — заменяемый шаблон. Второй аргумент — имя замены. При замене $1
, $2
и т. д. относятся к соответствующей группе в скобках в шаблоне. См. руководство для других возможностей и ограничений.