awk
может выводить текст, нет необходимости в echo
или xargs
. Ваш подход имеет проблемы для имен файлов с более чем одной точкой, например foo-1.2.txt
.
Он также будет иметь проблемы для имен файлов с новыми строками в них или если есть каталоги, имя которых заканчивается на .txt
.
Для начала, я бы использовал здесь цикл, например, в zsh:
(set -o noclobber; for f (*.txt(N)) echo abracadabra > $f:r.test)
Или POSIXly:
(set -o noclobber
for f in *.txt; do
echo abracadabra > "${f%.*}.test"
done)
noclobber
- чтобы избежать переопределения уже существующего файла. Обратите внимание, что он не учитывает скрытые файлы. Если нет txt
файла, он создаст *.test
файл.
Обновление ядра изменит выводuname
(или, по крайней мере, uname -v
иuname -a
).
Если вы используете полноценную виртуальную машину, это должно измениться только при обновлении ядра на виртуальной машине.
Но есть много систем хостинга, использующих внешнее ядро :, включая контейнеры, а также OpenVZ. Скорее всего вы его используете.
Существует альтернативная возможность, помимо фактического изменения ядра.
Имя хоста — это то, что uname
может выводить. Если перед перезагрузкой вы обновили статическое имя хоста (, то есть то, которое хранится в файле конфигурации ), но не обновили динамическое имя хоста (, то есть то, которое хранится в памяти ядра ), то перезапуск даст разные результаты uname -a
до и после.