2

Мне нужно переименовать все файлы изображений в каталоге и назвать их, как называется папка, в которой они находятся ... Возможно ли это с помощью скрипта Bash?

Мне также нужно их нумеровать (0001.jpg, 0002.jpg, 0003.jpg, т.д.) Последовательно. Проблема у меня в том, что между числами есть некоторые скачки .. (0018.jpg, 0019.jpg, 0025.jpg, 0026.jpg, т.д.) Я хотел бы переименовать 0025.jpg в 0020.jpg и 0026.jpg в 0021.jpg и т.д.

2 ответа2

0

Да, это возможно. Вы можете использовать find /search/path -type d чтобы найти все каталоги, и использовать опцию -exec, чтобы выполнить некоторые действия с путем к каталогу в качестве параметра. И у вас может быть скрипт bash, который запускает NUM=0; for file in /path/to/folder/*.jpg; do mv file NUM.jpg; let "NUM=NUM+1"; done; или что-то вроде этого

0

Чтобы использовать эту команду, вы должны находиться в каталоге, где находятся файлы .jpg, или вам нужно немного изменить команду.

 let a=0; for i in *.jpg; do let a=a+1; b=`basename $PWD`; c=`printf %04d$b.jpg $a`; mv $i $c; done

Вывод будет выглядеть так:

0001<dirname>.jpg

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .