Посмотрите в команду find
Обязательно cd
на ваш входной каталог.
cd input_directory
find . -iname "*.ext" -exec convert -input {} -output {}.out \;
Это приводит к добавлению .out
к имени вашего входного файла. Получение вашего заявленного выходного файла я еще не понял.
Всегда разумно проверить, что делает find
перед запуском -exec
который что-то меняет.
cd input_directory
find . -iname "*.ext" -type f -exec ls -l {} \;
будет делать что-то вроде "пробега".
-exec
какую команду запустить
{}
какой файл был найден; один за раз
\;
нужно использовать это, чтобы закончить -exec
Мои ограниченные эксперименты показывают, что вам не нужно цитировать {}
$ find . -type f -exec ls -bl {} \;
-rw-r--r--. 1 me me 0 Oct 20 19:03 ./a\ b\ c.txt
-rw-r--r--. 1 me me 0 Oct 20 19:03 ./abc.txt
$ ls -bl
total 0
-rw-r--r--. 1 me 0 Oct 20 19:03 a\ b\ c.txt
-rw-r--r--. 1 me 0 Oct 20 19:03 abc.txt
me ~/a $`
У меня есть текстовый файл help.txt, в котором содержатся подсказки ко всем моим трудно запоминающимся командам bash. Я привязал его к простому сценарию, чтобы распечатать файл .., ч
Вот список моих команд поиска:
# searches for all files on the system for the string you fill in between the ""
sudo find / -type f -exec grep -il "" {} \;
# search for all files starting with python.
find / -iname 'python*'
# search for the file type .jpeg and sort the list by date
find ~ -iname "*.jpeg" -type f -exec ls -l {} \; 2>/dev/null | sort -r -k 8,8 -k 6,7M
# so I can remember the or syntax.
find ~ \( -iname "*.jpeg" -o -iname "*.png" \) -type f -exec ls -l {} \;