У меня была такая же проблема, но в Gparted я отключил устройство, после чего смог работать с ним, удалил раздел и создал новый идентичный. Теперь все в порядке.
Если вы не хотите рекурсировать, нет смысла использовать find. Это гораздо проще сделать непосредственно в оболочке:
for d in */; do echo "$d"; svnadmin verify "$d"; done
for d in */ найдет все каталоги (*/ гарантирует только каталоги и файлы не найдены); echo "$d" напечатает имя каталога; svnadmin verify "$d" проверит каталог.
Это можно запустить либо из командной строки, либо из сценария без изменения формата.
find ./* -maxdepth 0 -type d -exec bash -c 'echo "{}"; svnadmin verify "{}"' \;
Я добавил -type d, если это только каталоги.
Попробуйте следующее:
for f in * ; do echo -n "${f}:"; svnadmin verify "${f}"; done
Если вам просто нужны каталоги (спасибо @kos note):
for f in */ ; do echo -n "${f}:"; svnadmin verify "${f}"; done
Ваша команда
find . -maxdepth 1 -type d ! -name "." -exec sh -c 'echo "{}"; svnadmin verify "{}"' \;
или короче
[d1 ] Используйте . -maxdepth 1 вместо ./*, вам нужен только первый уровень в структуре папокВаша команда
find . -mindepth 1 -prune -exec sh -c 'echo "{}"; svnadmin verify "{}"' \;
Может быть полезно передать вывод find в цикл read:
find . | while read d; do echo "=== ${d}: ==="; svnadmin verify ${d}; done
Он позволяет выполнять более сложную сложную последовательность команд с именами файлов, возвращаемыми find, например в этом фантастическом примере ls:
find . | while read f; do echo ${f} | figlet -k; done