Итак, я хочу отобразить ( ls
например, через ) все файлы, которые были изменены за последние семь дней. Если я нахожусь в моей docroot-папке, она должна выглядеть "глубже".
Например:
File Last changed
docroot
|- myfile1 30.11.2015
|- myfile2 10.11.2015
|- MySub
|-sub1 30.11.2015
|-sub2 10.11.2015
Таким образом, ls
(или все, что подходит) должен выводить myfile1
и (если это возможно)
MySub/sub1
.
Это выполнимо с одной командой?
command-line
search
ls
DasSaffe
источник
источник
find
естьls
вариант, чтобы вы могли просто сделатьfind . -type f -mtime -7 -ls
find ... -exec ls -l {} +
который выполняетсяls -l
намного эффективнее - меньше раз с несколькими параметрами. Это стандартная опция,find
указанная в POSIX.С
zsh
:**/*
будет искать файлы рекурсивно, начиная с текущего каталога(.m-7)
является квалификатором глобуса, где.
указывает обычный файл,m-7
указывает файлы, которые были изменены в течение последних 7 днейисточник
Следующая команда работает мечта на Mac OSX - может быть, также на Ubuntu ...
Это находит файлы в текущем дереве каталогов, которые были изменены за последние 7 дней, выводит дату модификации + время и путь, отсортированные сначала самыми новыми.
Пример вывода:
Буду благодарен за любые отзывы пользователей Ubuntu.
источник
Не совсем то, о чем просили ... но гораздо легче запомнить ...
или
источник
7 дней это 60 секунд * 60 минут * 24 часа * 7 дней = 604800 секунд
Узнать текущую дату в секундах (время эпохи Unix):
Вычтите 7 дней в секундах:
Теперь возьмите
stat
команду и напечатайте статистику для всех файлов в формате «имя + время в секундах» и используйтеawk
для обрезки тех файлов, время модификации которых больше, чем та дата, которую мы рассчиталиОсобенно интересны последние 3 файла, потому что я знаю, что работал над ними менее 7 дней назад. Таким образом, я знаю, что это работает
источник
awk '$2 > 1448271265 {print $0}'
вас можно прямо сказатьawk '$2 > 1448271265'
. При истинном условии awk печатает текущую строку как действие по умолчанию.