У меня есть куча каталогов, каждая из которых содержит кучу файлов. Обычно я могу перечислить все файлы с помощью ls */*.*
но это всегда перечисляет их в соответствии с алфавитным порядком в каталогах, затем в алфавитном порядке в каждом каталоге. Так что это всегда будет выводить
dir1/file1.foo
dir1/file2.foo
...
dir2/file1.foo
dir2/file2.foo
...
...
DIRN /file1.foo
DIRN /file2.foo
...
Вместо этого я хотел бы вывести его так, чтобы каталоги были расположены в определенном порядке (например, в обратном порядке), но все файлы в каждом каталоге были расположены в обычном порядке, например:
DIRN /file1.foo
DIRN /file2.foo
...
...
dir1 /file1.foo
dir1 /file2.foo
...
Использование ls -r */*.*
Не делает то, что я хочу, потому что он меняет порядок внутри каждого каталога, а также порядок самих каталогов. Я попытался использовать ls `ls -r`
который делает то, что я хочу, для имен каталогов, в которых нет пробелов, но не будет работать для тех, которые делают (что, к сожалению, большинство из них). Если я вместо этого попытаюсь использовать ls "`ls -r`"
то он выдаст то же самое, что и ls -r
- список имен каталогов, но в обратном порядке. Как заставить bash делать то, что я хочу?