Результат обычной находки с использованием find . ! -path "./build*" -name "*.txt"
:
./tool/001-sub.txt
./tool/000-main.txt
./zo/001-int.txt
./zo/id/002-and.txt
./as/002-mod.txt
и когда сортируется с sort -n
:
./as/002-mod.txt
./tool/000-main.txt
./tool/001-sub.txt
./zo/001-int.txt
./zo/id/002-and.txt
Однако желаемый результат:
./tool/000-main.txt
./zo/001-int.txt
./tool/001-sub.txt
./zo/id/002-and.txt
./as/002-mod.txt
Это означает, что выходные данные сортируются на основе только имени файла , но информация о папке должна сохраняться как часть выходных данных.
Изменить : сделать пример более сложным, так как структура подкаталога может включать более одного уровня.
-printf
вместо awk
), я думаю, что это лучшее решение. Я переработал мою первоначальную реализацию, чтобы использовать этот метод.