Как добавить расширение .sh к файлам сценариев в Linux
У меня есть десяток файлов без расширения, и мне нужно добавить
Я нашел файлы так:
file * | grep "Bourne-Again shell"
Как с помощью команды xargs добавить расширение к файлам, полученным выше? Если возможно, команда file должна быть включена в каналы для поиска файлов.
2 ответа
Вы можете сделать это так:
for f in *
do
grep "Bourne-Again shell" <(file "$f") >/dev/null && echo mv "$f" "$f".sh
done
Запустите приведенный выше код из каталога, содержащего ваши файлы сценариев, и удалите его, когда вы будете удовлетворены результатом, чтобы выполнить фактическое переименование.
Уведомление:
xargs
не лучше всего подходит для этой операции, но если вы настаиваете, то это можно сделать уродливым способом:
file * | grep "Bourne-Again shell" | cut -f 1 -d ' ' | rev | cut -c 2- | rev | xargs -I {} -n1 echo mv {} {}.sh
Запустите приведенный выше код из каталога, содержащего ваши файлы сценариев, и удалите
echo
когда вы удовлетворены результатом, чтобы сделать фактическое переименование.
Вы можете использовать
mv
изменить имя файла.
Например
mv $FILENAME $FILENAME.sh
file * | grep "Bourne-Again shell" | while read FILE; do mv "${FILE}" "${FILE}.sh"; done