Чтобы распечатать последние 3 файла, к которым был осуществлен доступ (отсортированы от последнего файла, к которому был осуществлен доступ, к третьему последнему доступному file):
find . -type f -exec stat -c '%X %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print $2}'
Чтобы распечатать последние 3 измененных файла (отсортированных от последнего измененного файла до третьего последнего измененного файла):
find . -type f -exec stat -c '%Y %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print $2}'
find. -type f -exec stat -c '% X% n' *
: печатает время последнего доступа, за которым следует путь к файлу для каждого файла в текущей иерархии каталогов; find. -type f -exec stat -c '% Y% n' *
: выводит время последней модификации, за которым следует путь к файлу для каждого файла в текущей иерархии каталогов; sort -nr
: сортирует по обратный числовой порядок; awk 'NR == 1, NR == 3 {print $ 2}'
: печатает второе поле первой, второй и третьей строки. Вы можете изменить количество отображаемых файлов, заменив 3 на желаемое количество файлов в awk 'NR == 1, NR == 3 {print $ 2}'
.
% touch file1
% touch file2
% touch file3
% find . -type f -exec stat -c '%X %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print }'
./file3
./file2
./file1
% find . -type f -exec stat -c '%Y %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print }'
./file3
./file2
./file1
% cat file1
% find . -type f -exec stat -c '%X %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print }'
./file1
./file3
./file2
% find . -type f -exec stat -c '%Y %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print }'
./file3
./file2
./file1
% touch file2
% find . -type f -exec stat -c '%X %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print }'
./file2
./file1
./file3
% find . -type f -exec stat -c '%Y %n' {} \; | sort -nr | awk 'NR==1,NR==3 {print }'
./file2
./file3
./file1