Сглаживание вывода рекурсивного списка каталогов

Пакеты graph и RBGL находятся в репозитории пакетов Bioconductor, у меня работает следующее:

R> source("http://bioconductor.org/biocLite.R"); biocLite(c("graph", "RBGL"))
R> install.packages("reshape")
R> install.packages("Vennerable", repos="http://R-Forge.R-project.org")
7
26.12.2015, 17:39
2 ответа

С zsh :

print -rl -- **/*(D.om)

** / * соответствует любому уровню подкаталогов (и не следует символическим ссылкам). D. квалификаторы перечисляют обычные файлы, om сортируют их по времени модификации, начиная с самых новых.

Если вы хотите, чтобы имена файлов отображались без каталога, добавьте модификатор истории t :

print -rl -- **/*(D.om:t)
5
27.01.2020, 20:15

ну, если вы говорите о многих и многих тысячах файлов - и таким образом превышаете ваш ARG_MAX лимит - тогда это не очень хорошо, но самое простое решение:

find . ! -type d -exec ls -t {} +

... которое будет вызывать ls для каждой партии <=ARG_MAX файлов, которые оно сможет найти. Нет никаких произвольных ограничений на символы в именах путей, только на максимальное количество аргументов, которые могут быть обработаны вместе.

Вывод будет идентичен выводу find. Конечно, вы можете использовать любую другую опцию, например -l или -h GNU. Вот несколько списков из небольшого дерева, которое я создал неделю назад:

find . ! -type d -exec ls -lht {} +

-rw-r--r-- 1 mikeserv mikeserv   0 Dec 19 19:00 ./dir/dir1/file
-rw-r--r-- 1 mikeserv mikeserv   0 Dec 19 19:00 ./dir/dir2/file
-rw-r--r-- 1 mikeserv mikeserv   0 Dec 19 19:00 ./dir/dir3/file
-rw-r--r-- 1 mikeserv mikeserv   0 Dec 19 19:00 ./dir2/dir1/file
-rw-r--r-- 1 mikeserv mikeserv   0 Dec 19 19:00 ./dir2/dir2/file
-rw-r--r-- 1 mikeserv mikeserv   0 Dec 19 19:00 ./dir2/dir3/file
-rw-r--r-- 1 mikeserv mikeserv   0 Dec 19 18:57 ./dir/file1
-rw-r--r-- 1 mikeserv mikeserv   0 Dec 19 18:57 ./dir/file2
-rw-r--r-- 1 mikeserv mikeserv   0 Dec 19 18:57 ./dir/file3
-rw-r--r-- 1 mikeserv mikeserv   0 Dec 19 18:57 ./dir2/file1
-rw-r--r-- 1 mikeserv mikeserv   0 Dec 19 18:57 ./dir2/file2
-rw-r--r-- 1 mikeserv mikeserv   0 Dec 19 18:57 ./dir2/file3

...которые, очевидно, не сгруппированы по каталогам.

На моей машине...

getconf ARG_MAX

2091752

... но я не думаю, что это реалистично. Я думаю, что в среднем это что-то более похожее на 65k или около того.

0
27.01.2020, 20:15

Теги

Похожие вопросы