Команда «Найти/Переименовать» не улавливает имена файлов, которые я хочу найти

Команда «Найти/Переименовать» не улавливает имена файлов, которые я хочу найти

У меня в домашнем каталоге есть эти два файла -

hello_newest.txt
goodbye_newest.txt

Я хочу переименовать их так, чтобы «самая новая» часть имени файла была полностью удалена, чтобы они были доступны hello.txtиgoodbye.txt

Это команда, которую я запускаю -

find -name "*.txt" -exec rename 's/newest//i' {} ";"

Он не выдает ошибку и ничего не делает с файлами после того, как я запускаю эту команду. Я проверилhttp://www.computerhope.com/unix/rename.htmи судя по некоторым из приведенных примеров, похоже, что это должно работать.

Я уверен, что это что-то простое, но что я упускаю?

решение1

Похоже, это была версия Redhat, на которой мы были. Команда -

rename _newest '' *

Кажется, это позволяет достичь тех же целей.

Спасибо за помощь.

решение2

Другой синтаксис. Но у меня сработало:

for i in *.txt; do mv "$i" "`echo $i | sed 's/_[^.]*//'`"; done

Все текстовые файлы находятся с помощью цикла for, а затем символы после подчеркивания удаляются с помощью sed.

Связанный контент