команда cp на основе родительского каталога

Те системы, которые позволяют непривилегированным пользователям выключать систему, обычно делают это только для пользователей, которые вошли в систему локально, то есть пользователей, которые имеют физический доступ к машине и могут, например, с таким же успехом потянуть шнур питания или нажать кнопку кнопка/переключатель питания.

В таком случае лучше позволить им отключить систему, чтобы это можно было сделать корректно и чтобы у нас была запись о том, кто инициировал отключение.

Там, где источник электроэнергии может быть защищен, а доступ к кнопке питания для обычных пользователей удален, как правило, эту возможность можно исключить.

1
06.02.2021, 15:48
2 ответа

Вы можете попробовать следующий цикл for:

for d in parentfolder/* ; do
    cp "$d/subfolder/map.png" "$d.png"
done

Вы должны запускать его, когда ваш текущий каталог находится на том же уровне, что и parentfolder.

2
18.03.2021, 22:32

Zsh поставляется с утилитой zmv, которая удобна для переименования и копирования файлов на основе шаблона -. Поместите это в свой .zshrc, если у вас его еще нет :

.
autoload -U zmv
alias zcp='zmv -C'
alias zln='zmv -L'

(Или запустите эти команды в сеансе оболочки, чтобы включить их только для этого сеанса.)

Затем (изparentfolder):

zcp '(*)/subfolder/map.png' '$1.png'

Первый аргумент — заменяемый шаблон. Второй аргумент — имя замены. При замене $1, $2и т. д. относятся к соответствующей группе в скобках в шаблоне. См. руководство для других возможностей и ограничений.

0
18.03.2021, 22:32

Теги

Похожие вопросы