Найти файлы, затем переместить их и переименовать одновременно?

Сначала настройте ловушку в сеансе для поведения выхода:

trap ~/.logout EXIT

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

Затем вы можете написать сценарий .logout:

#!/bin/bash
cd /path/to/git/working/project
if [ "$( git status | wc -l )" -gt 5 ]
then
  echo "Check in your work before you leave."
  bash 
fi

Затем, когда вы попытаетесь выйти из сеанса, будет выполнен сценарий .logout, и появится bash, чтобы проверить, правильно ли делает пользователь. Если пользователи поступят правильно с git, сеанс завершится нормально.

3
02.05.2019, 19:18
1 ответ

Вы можете использовать действие -execв find, чтобы можно было манипулировать строкой оболочки с именем файла. Расширение параметра "${var%.*}"можно использовать для удаления расширения. Ниже приведен пример.

find. -type f -name '*.css.gz' -exec bash -c 's3cmd put --acl-public --add-header="Content-Encoding: gzip" "$1" "s3://mybucket/assets/${1%.*}"' -- {} \;

2
27.01.2020, 21:24

Теги

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