2013-08-21 2 views
0

Я хотел бы переименовать несколько файлов с именем, например, как это:Переименование нескольких имен файлов с пробелами в терминале

Screenshot at 2013-08-10 19:29:09.jpg 

к:

0001.jpg 

Или в основном ничего другого, то оригинальное имя с которыми было бы удобнее работать.

Я пробовал следующий сценарий:

a=1 
for i in *.jpg; do 
    new=$(printf "%04d.jpg" ${a}) #04 pad to length of 4 
    mv ${i} ${new} 
    let a=a+1 
done 

из here.

Но это дает мне следующую ошибку из-за пробелов в исходном имени файла.

mv: target `0021.jpg' is not a directory 

Если бы кто-нибудь мог сказать мне правильный способ сделать это, я был бы признателен. Спасибо!

+0

Вы пытались использовать «вокруг ваших переменных? Mv» $ {i} "$ {new}, например. – x29a

ответ

1

Неопытность с моей стороны .. Нашел решение в другом thread.

Решение должно использовать "$i" вместо $(i).

a=1 
for i in *.jpg; do 
    new=$(printf "%04d.jpg" ${a}) #04 pad to length of 4 
    mv "$i" ${new} 
    let a=a+1 
done 
Смежные вопросы