Результат звичайної знахідки за допомогою 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
), я вважаю, що це найкраще рішення. Я переробив свою оригінальну реалізацію для використання цього методу.