2017-05-16 8 views
0

ディレクトリ内のすべてのファイル拡張子を別の拡張子に再帰的に名前を変更するコマンドが見つかりましたが、拡張子ではなく名前を変更することです。 ここで私が使用したコードは(i」が仕事をdoesnの)Ubuntuで拡張子 '.mpeg'で終わるファイルの名前を変更

find . -type f -name "*.mpeg" -exec rename -v 's/*.mpeg$/' video.mepg '{} \;'

これはvideo.mpgにファイル部分の名前を変更しますが、残してすべての建設的な応答を

答えて

0
find ./ -type f -name \*.mpeg -exec rename -v 's/^(.*)\/.*.mpeg$/$1\/video.mpeg/' {} \; 

をありがとうディレクトリ構造同じ。ここで

が結果は次のとおりです。お時間を

ubuntu:~/stackoverflow$ find ./ -type f -name \*.mpeg -exec rename -v 
's/^(.*)\/.*.mpeg$/$1\/video.mpeg/' {} \; 
./dir1/dir2/dir3/test.mpeg renamed as ./dir1/dir2/dir3/video.mpeg 
./dir1/dir2/dir3/dir4/test.mpeg renamed as 
./dir1/dir2/dir3/dir4/video.mpeg 
./dir1/dir2/test.mpeg renamed as ./dir1/dir2/video.mpeg 
./dir1/test.mpeg renamed as ./dir1/video.mpeg 
+0

おかげで、私はあなたが私を与えたコードの一部を試してみました。エラーはありませんが、うまくいきませんでした。 $ 1が1つのディレクトリにぴったり一致していると思います。 ^((。*)\ /)*。* .mpgのようにはならないのですか? – 0dium

+0

なぜ.mpegの代わりに.mpgを使用するのですか? – 0dium

+0

それは動作します。私はそれを送る前にそれを試しました。 mpgをmpegに変更するだけです。 –

関連する問題