Jak wyświetlić listę wszystkich plików w katalogu i podkatalogach w odwrotnej kolejności chronologicznej?
Chcę zrobić coś takiego jak ls -t
ale również mieć włączone pliki w podkatalogach. Ale problem polega na tym, że nie chcę, aby wyjście było sformatowane tak, jak ls -R
robi, co jest takie:
[test]$ ls -Rt
b testdir test
./testdir:
a
Chcę, aby było sformatowane tak, jak polecenie find
wyświetla pliki w podkatalogach. I. E:
[test]$ find .
.
./b
./test
./testdir
./testdir/a
Ale to, co find
nie wydaje się robić, to uporządkować wynik chronologicznie według czasu ostatniej aktualizacji.
Więc jak Mogę wylistować wszystkie pliki w katalogu i podkatalogach, w formacie tak, ale w odwrotnej kolejności chronologicznej?
7 answers
Spróbuj tego:
find . -type f -printf "%T@ %p\n" | sort -nr | cut -d\ -f2-
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-05 22:00:56
ls -lR
jest wyświetlanie wszystkich plików, katalogów i podkatalogów w katalogu domowym
ls -lR | more
jest używany do wyświetlania wszystkich plików w przepływie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-26 11:46:03
Jeśli liczba plików, które chcesz wyświetlić mieści się w maksymalnym limicie argumentów, możesz użyć globbingu, aby uzyskać to, co chcesz, z rekurencją, jeśli masz wsparcie globstar.
Dla dokładnie 2 warstw głębokiego użycia: ls -d * */*
Z globstar, dla rekurencji użyj: ls -d **/*
Argument -d
do ls
mówi mu, aby nie rekursował katalogów przekazywanych jako argumenty (ponieważ używasz globbingu powłoki do rekurencji). Uniemożliwia to ls
używanie formatowania rekurencyjnego.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-07 22:06:59
find -type f -print0 | xargs -0 ls -t
Wada: działa tylko do określonej ilości plików. Jeśli masz bardzo dużą ilość plików, potrzebujesz czegoś bardziej skomplikowanego
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-05 21:30:48
Spróbuj
find . -type d
lub
find . -type d -ls
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-01 23:39:25
Spróbuj tego:
ls -ltraR |egrep -v '\.$|\.\.|\.:|\.\/|total' |sed '/^$/d'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-26 18:37:35
Polecenie w odpowiedzi wfg5475 działa poprawnie, wystarczy dodać jedną rzecz, aby pokazać tylko pliki w katalogu & podkatalogu:
ls -ltraR |egrep -v '\.$|\.\.|\.:|\.\/|total|^d' |sed '/^$/d'
Dodano jedną rzecz: ^d
Aby zignorować wszystkie katalogi z listy wyjść
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:29