-1

Я делаю сценарий, чтобы пройти через папку, переименовав все файлы и папки в ней в VAR1, VAR2, VAR3 и т.д., Где VAR - переменная, указанная пользователем. Я ошибочно предположил, что это будет просто.

Все, что мне нужно знать, это как сделать цикл for для всех элементов в определенной папке, так как мне это сделать?

Спасибо!

2 ответа2

1

Вот пример. Вы должны сделать свой собственный скрипт и передать аргументы. Ниже приведена единственная процедура, которая работает для ваших аргументов. Все проверки аргументов оставлены за вами.

prefix=AAA
i=1
for f in * ; do
   mv $f $prefix$i
   ((i++))
done
0

Вы должны использовать find чтобы перечислить все файлы и каталоги, чтобы дать команду в следующем виде:-

find TargetDir|sort -r|while f="`line`"; do ((n=$n+1)); mv "$f" "${f%/*}/$VAR$n"; done

Обратная sort гарантирует, что файлы будут переименованы до того, как каталоги в их путях будут переименованы.

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