4

У меня есть требование, где мне нужно проверить структуру вложенных папок.

Пример: у меня есть 3 папки: test1, test2, test3 (практически может быть любое количество таких папок). Теперь все эти папки должны содержать папки типа V1, V2 ... вот так ('V', за которым следует номер). В этой папке (V1 ...) должно быть только две папки с именами "dummy1" и "dummy2".

Таким образом, все эти проверки должны выполняться рекурсивно, пока все папки, такие как test 1 ... test2 ... Проверены.

4 ответа4

3

Вы можете использовать команду поиска . Найти рекурсы через структуру каталогов, что-то делать с каждым файлом / каталогом. Вы можете ограничить его каталогами с флагом -type.

find start_dir -type d -print

Чтобы на самом деле все проверить, имеют структуру, я думаю, вам придется написать скрипт, смотрящий на этот список, - и я думаю, что вам придется делать это на более мощном языке сценариев, чем shell, например, perl, python, ruby, tcl.

1

Другой вариант - простая команда дерева .

Просто делать

tree directory/

затем «подтвердите» вывод этого.

1

положительный тест:

find test* -maxdepth 1 -type d -regex ".*/V[0-9]+" 
find test* -mindepth 2 -maxdepth 2 -type d -regex ".*/V[0-9]+/dummy[12]" 

отрицательный тест:

find test* -maxdepth 1 -type d -not -regex ".*/V[0-9]+" 
find test* -mindepth 2 -maxdepth 2 -type d -not -regex ".*/V[0-9]+/dummy[12]" 
0

Попробуйте использовать следующую команду:

find . -name dummy1 -exec echo "Hello, '{}'" \;
find . -name dummy2 -exec echo "Hello, '{}'" \;

это дает вывод вместе с PWD.

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