Команда bash для каждого файла в папке

Существует по меньшей мере сто тысяч миллионов различных способов приблизиться к этому, но вот главные претенденты:

Цикл Bash for

for f in ./*.doc; do    # do some stuff here with "$f"    # remember to quote it or spaces may misbehavedone

С помощью find

То find команда имеет прекрасный маленький exec команда, которая отлично подходит для выполнения задач (с некоторыми оговорками). Поиск лучше, чем обычный поиск по глобусу, потому что вы действительно можете отфильтровать файлы, которые вы выбираете. Будьте осторожны со странным синтаксисом.

find . -iname '*.doc' -exec echo "File is {}" \;

Обратите внимание, что find является рекурсивным, поэтому вы можете захотеть использовать -maxdepth 1 хранить find в текущем рабочем каталоге. -type f может использоваться для фильтрации обычных файлов.

Если мы просто переименование doc в txt...

То rename команда похожа на sed при поиске. Очевидно, что это ничего не сделает для преобразования формата.

rename 's/doc$/txt/' *.doc