2016-04-08 12 views
0

メインフォルダのすべてのサブディレクトリとファイルの名前を変更します。名前のすべての空白を削除します。例えばメインフォルダのすべてのサブディレクトリとファイルの名前を変更します。

/MyMainFolder/New Folder 
becomes 
/MyMainFolder/NewFolder 

/MyMainFolder/New Compressed Folder (Zip) 
becomes 
/MyMainFolder/NewCompressedFolder(Zip) 

/MyMainFolder/New Folder/temp/Some Random Folder 
becomes 
/MyMainFolderser/NewFolder/temp/SomeRandomFolder 

私はそうするためには、次のbashスクリプトを思い付いたが、助けていないようだ -

find ~/MyMainFolder/ -name '* *' -execdir rename " " "" {} + 
+0

あなたは 'rename'のどのバージョンをお持ちですか? Perlをベースにしたものではなく、パテント的に弱いものでなければならないように見えます。 Perlベースのもの( 'prename'と呼ばれることもあります)では、' -execdir rename 's/\ s + // g' {} + 'を使用して、1つ以上の空白文字(空白、タブ、改行、改行など)を何もしません。 –

答えて

0
find ~/MyMainFolder/ -depth -name '* *' -execdir rename " " "" {} + 

私はあなたが必要と思います奥行き、findに葉の名前を変更することから始めます。それ以外の場合は、最初に「a a」を見つけ、「a a/b b」を「a a」に「aa」と改名し、「a a/b b」の「a/b b」を見つけることができません。

関連する問題