У меня есть эти два файла в моем домашнем каталоге -
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 и похоже, что он должен работать, основываясь на некоторых из этих примеров.
Я уверен, что это что-то простое, но что мне не хватает?
Похоже, это может быть та версия Redhat, на которой мы были. Команда -
rename _newest '' *
Кажется, для достижения тех же целей.
Спасибо за помощь.
Другой синтаксис. Но у меня сработало:
for i in *.txt; do mv "$i" "`echo $i | sed 's/_[^.]*//'`"; done
Все файлы txt находятся с помощью цикла for, а затем символы после подчеркивания удаляются с помощью sed.