ls -al /usr/local/svn/repos/ |grep '^d' |sed s/^...............................................................//" |xargs -L 1 -I zzyggy echo /usr/local/svn/repos/zzyggy
Это немного длинно, но делает свое дело. Вам не нужно делать все с find, когда есть много других команд оболочки, хотя, если бы мне пришлось писать этот вид сценария, я бы сделал это на Python и оставил бы оболочку для интерактивной работы.
ls -al
перечисляет все файлы в названном каталоге с атрибутами
grep '^d'
выбирает строки, начинающиеся с d, которые являются каталогами
sed
удаляет все символы слева от фактического имени каталога. Возможно, вам придется добавить или удалить некоторые точки
xargs
берет список имен каталогов и выдает его по одному. Я указал zzyggy в качестве имени для замены в выполненной команде, но вы можете выбрать то, что вам нравится. Конечно, вы должны заменить echo командой svnadmin.
Если это было в сценарии оболочки, вы действительно должны сделать это
SVNDIRNAME="/usr/local/svn/repos"
ls -al $SVNDIRNAME |grep '^d' |sed s/^...............................................................//" |xargs -L 1 -I zzyggy echo $SVNDIRNAME/zzyggy
но я решил показать неправильный и правильный путь, чтобы объяснить этот момент. Я собираюсь пометить это с помощью некоторого тега оболочки, но я все еще думаю, что сценарий Python - превосходный способ решить эту проблему в 21 веке.