検索/名前変更コマンドが検索したいファイル名をキャッチしない

検索/名前変更コマンドが検索したいファイル名をキャッチしない

私のホームディレクトリには次の2つのファイルがあります -

hello_newest.txt
goodbye_newest.txt

ファイル名の「最新」部分を完全に削除して、再度表示できるように名前を変更したいhello.txtgoodbye.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 ループを使用してすべての txt ファイルが検出され、次に sed を使用してアンダースコアの後の文字が削除されます。

関連情報