Ответы на все ваши вопросы
- Why is cron/pam_env/pam_unix trying to open that file in the first place?
См. ОШИБКА #646015 . В некоторых случаях (, например, связанных с локалью ), этот файл считается устаревшим. Но он по-прежнему используется во всей системе -, и каждый раз, когда он отсутствует, создается журнал.
- If they legitimately expect it, why isn't it there?
Возможно, ошибка все-таки не исправлена. Steve Langasek(BUG #646015)сказал, что это так, и новые системы должны создавать этот файл, используя postinst
скрипты, точно так же, как старые обновляемые системы уже должны иметь этот файл.
- What should I do about this?
dpkg-reconfigure libpam-modules
и посмотрите, создаст ли он файл с помощью своего сценария postinst
. touch /etc/environment
Также интересно сообщить о вашей проблеме в проект Devuan с подробным описанием проблемы и вашими настройками, поскольку эта проблема была решена до того, как произошло ответвление Debian/Devuan.
В зависимости от системы поведение команды rename
может сильно различаться. Подробности см. на странице man
.
Первый тип проще, и вы просто говорите ему, какую строку заменить и на какую строку заменить:
rename _001.f "" *_001.f.txt
rename _001.f _rt *_001.f.txt
Второй тип использует замену Perl:
rename 's/_001\.f//' *_001.f.txt
rename 's/_001\.f/_rt/' *_001.f.txt
Или вы можете использовать цикл и расширение параметров, чтобы создать новые имена самостоятельно:
for f in *_001.f.txt ; do
mv "$f" "${f%_001.f.txt}".txt
mv "$f" "${f%_001.f.txt}"_rt.txt
done
%
означает «Удалить справа», #
используется аналогично для удаления слева.
Я не уверен, правильно ли я Вас понял. Следующий код переименовывает файлы «Пример» в файлы «Переименование» :
.for f in *.txt; do mv "$f" "$(echo "$f" | sed -e 's/001.f/rt/')";done