Я пытаюсь сравнить файлы в одном каталоге с другими. Давайте возьмем каталоги test 1 и test2. Если тест 1 содержит файл с именем 123.JPG, и если в тесте 2 содержится файл с именем 123.JPG.gpg, я бы тогда не принял никаких мер: 123.JPG уже зашифрован. Однако, если совпадение не было успешным, я бы запустил gpg для шифрования 123.JPG.скрипт bash для сравнения имен файлов в одном каталоге с именами файлов в другом при игнорировании расширений файлов
Я нашел этот сценарий в другом месте, которое я пытался изменить, чтобы достичь выше, но безрезультатно:
cd source
for x in *; do
set -- "…/dest/${x%.*}".*
if [ $# -eq 1 ] && ! [ -e "$1" ]; then
echo "$x has not been converted"
elif [ $# -gt 1 ]; then
echo "$x has been converted to more than one output file: " "[email protected]"
else
echo "$x has been converted to $1"
fi
done
Может кто-нибудь, пожалуйста, помогите?
Спасибо
Спасибо Рани. Когда я запускаю это, я получаю эту ошибку -ash: синтаксическая ошибка: неожиданная »(« Это потому, что я нахожусь на bash, а не zsh? – spesmagna
№. Это должно работать на Bash. Проверьте, что вы используете ту же команду. –
Сообщение об ошибке предполагает, что вы запускаете 'ash', что действительно не поддерживает это расширение синтаксиса, отличное от POSIX. – tripleee