GNU/Linux >> Linux の 問題 >  >> Linux

Linux:複数のファイルのファイル拡張子を削除する

空の文字列を引数として明示的に渡すことができます。

rename .old '' *.old

サブフォルダーを含む場合、find . -type d -exec rename .old '' {}/*.old \; . {} find で見つかったエントリの代替です 、および \; -exec の後に指定されたコマンドの arglist を終了します .


rename マニュアルページによると:

<ブロック引用>

rename は、最初のを置き換えて、指定されたファイルの名前を変更します の発生...

c.txt.parser.y のようなファイル名で間違ったことを喜んで行います。 .

find を使用したソリューションは次のとおりです と bash :

find -type f -name '*.txt' | while read f; do mv "$f" "${f%.txt}"; done

ファイル名に改行が含まれていると、これが壊れることに注意してください (まれですが、不可能ではありません)。

GNU find がある場合、これはより確実な解決策です:

find -type f -name '*.txt' -print0 | while read -d $'\0' f; do mv "$f" "${f%.txt}"; done

私はこれを使用します:

find ./ -name "*.old" -exec sh -c 'mv $0 `basename "$0" .old`.new' '{}' \;

Perl バージョンの rename では、次のように拡張子を削除できます:

rename 's/\.txt$//' *.txt

サブフォルダも実行するために、これを find と組み合わせることができます。


Linux
  1. Linuxで「find」コマンドを使用して複数のファイル名(拡張機能)を検索する方法

  2. 3 つの方法を使用して Linux で複数のファイルの名前をまとめて変更する方法

  3. Linux で複数のファイルを見つけて名前を変更する

  1. 検索を使用して複数のファイルの名前を変更するにはどうすればよいですか?

  2. Linux – Linuxで現在の日付のファイルを取得しますか?

  3. Linuxで一度に複数のファイルの名前を変更する方法

  1. KRename –Linux用の強力なバッチファイルリネーム

  2. Popsicle –Linux用の複数のUSBファイルフラッシャー

  3. Linuxでファイルを検索するには、検索と検索を使用します