Что я делаю, если я хочу список файлов из некоторого определенного каталога согласно их использованию?
Таким образом, я хочу список файлов в порядке возрастания согласно их последнему использованию относительно времени. В этом случае файл, к которому получили доступ в последний раз, должен быть перечислен сначала.
Можно использовать
ls -l --time=atime --sort=t
Объяснение:
ls -l
списки файлы с подробным форматом списка --time=atime --sort=t
наборы порядок сортировки ко времени последнего доступа Пример:
$ touch foo bar foobar
$ ls -l
insgesamt 0
-rw-r--r-- 1 Wayne users 0 Okt 4 11:56 bar
-rw-r--r-- 1 Wayne users 0 Okt 4 11:56 foo
-rw-r--r-- 1 Wayne users 0 Okt 4 11:56 foobar
$ sleep 60; touch baz
$ ls -l
insgesamt 0
-rw-r--r-- 1 Wayne users 0 Okt 4 11:56 bar
-rw-r--r-- 1 Wayne users 0 Okt 4 11:58 baz
-rw-r--r-- 1 Wayne users 0 Okt 4 11:56 foo
-rw-r--r-- 1 Wayne users 0 Okt 4 11:56 foobar
После нескольких минут:
$ touch -a foo # sets atime to cuurent time
$ ls -lt
insgesamt 0
-rw-r--r-- 1 Wayne users 0 Okt 4 11:58 baz
-rw-r--r-- 1 Wayne users 0 Okt 4 11:56 foobar
-rw-r--r-- 1 Wayne users 0 Okt 4 11:56 bar
-rw-r--r-- 1 Wayne users 0 Okt 4 11:56 foo
$ ls -lt --time=atime
insgesamt 0
-rw-r--r-- 1 Wayne users 0 Okt 4 12:01 foo
-rw-r--r-- 1 Wayne users 0 Okt 4 11:58 baz
-rw-r--r-- 1 Wayne users 0 Okt 4 11:56 foobar
-rw-r--r-- 1 Wayne users 0 Okt 4 11:56 bar
Заключение:
ls -lt --time=atime
делает то, в чем Вы нуждаетесь
Не принимая имени файла с новой строкой на имя, сделайте:
stat -c '%X %n' * | sort -k1,1rn | cut -d' ' -f2-
stat -c '%X %n' *
печатает файлы в текущем каталоге со временем доступа (точно relatime
) в Эпоху так же первый столбец и имя файла как затем
sort -k1,1rn
виды это первым полем (время)
cut -d' ' -f2-
получает имя файла только
Если Вы хотите получить время доступа также наряду с именем файла:
stat -c '%X %x %n' * | sort -k1,1rn | cut -d' ' -f2-