2017-05-22 29 views
-1

私はLinuxの名前変更コマンドラインツールを使用してディレクトリを再帰的に検索し、見つかったファイルと名前を変更します。私が実行している問題は、renameコマンドがファイルのサブディレクトリの名前を変更し、同じファイルの親ディレクトリの名前を変更しようとすることです。名前を変更してファイルとディレクトリの名前を変更する

rename -f 's/foo/bar/' ** 
rename -f 's/Foo/Bar/' ** 

例えば、ここで私は交換したい元のファイルは「FOO:サブディレクトリは、「そのようなファイルまたはディレクトリ」

コマンドが得られ改名されましたので、これは失敗しますバー '

ファイル'と':

/test/foo/com/test/foo/FooMain.java 

失敗:

Can't rename /test/foo/com/test/foo/FooMain.java /test/bar/com/test/foo/FooMain.java: No such file or directory 

優先ファイル:あなたは、親ディレクトリの名前を変更しようとしていますが、その時点でサブディレクトリがすでにファイルが見つからないというエラーが生じ変更されたエラーメッセージから見ることができます

/test/bar/com/test/bar/BarMain.java 

。これを修正する名前を変更するコマンドのパラメータがありますか、これを別の方法で行う必要がありますか?

+1

をSOプログラミングの質問ではなく、Unixツールの使用方法についての質問です。 Unix.stackexchange.comまたはSuperUser.comがより適切でしょう。 – Barmar

+0

https://unix.stackexchange.com/questions/366780/using-rename-to-rename-files-and-directoriesに移動しました – Bobbake4

答えて

0

使用すると、+ EXECDIRオプション見つける:

$ find . -execdir rename "s/foo/bar/" {} \; 
$ find . -execdir rename "s/Foo/Bar/" {} \; 
関連する問題