найти команду для новейших 500 файлов в дереве каталогов, а также быть совместимым с POSIX

Я ищу один скрипт командной строки или команду unix, чтобы найти самые новые 500 файлов в каталоге. Основные ограничения – это жалоба POSIX, и в каталоге может быть множество файлов.

2 Solutions collect form web for “найти команду для новейших 500 файлов в дереве каталогов, а также быть совместимым с POSIX”

Я уверен, что вам нужно будет скопировать каждый файл в каталог, чтобы определить, какие из них самые новые.

ls -t | head -n 500 | head -n 500

Если вы имеете в виду файлы в каталоге и во всех его подкаталогах,

 find . -exec sh -c \ $'echo "$(stat -c "%Y" "$0")\t$0"' {} \; | \ sort -k1nr | cut -f 2 | head -n 500 

должен сделать трюк.

Разрушение:

  • find . -exec find . -exec запускает команду для каждого файла под текущим каталогом
  • sh -c "command" {} запускает command для каждого файла, который видит видит, с $0 установленным именем файла
  • stat -c "+%Y" "$0" печатает время модификации файла, указанного в "$0"
  • sort -k1nr сортируется на основе первого поля в обратном порядке
  • cut -f 2 удаляет поле времени модификации, оставляя только имя файла
  • head -n 500 печатает не более 500 строк

$'...' и \t – это то, что sort и cut используют \t (т. Е. TAB) как разделитель полей.

Чтобы быть совместимым с POSIX, вы можете заменить

 $'...\t...' 

с

 "...<press Ctrl-V, Tab>..." 

К сожалению, stat не переносится. Linux использует stat -c "%Y" но FreeBSD и Mac OS используют stat -f "%m" .

Если вам действительно нужен переносимый метод, было бы проще использовать Python, Perl или Ruby.

  • команда / opt / bin / date -date '-15 минут 2016-04-27T14: 14: 47' результат за много часов до указанного времени
  • Корреляция / var / log / * timestamps
  • rsync и резервное копирование и изменение часового пояса
  • Нужно преобразовать столбец timestamp unix epoch в каждую строку с помощью sed или awk
  • Изменение измененной даты файла в зависимости от даты в имени файла
  • Время изменения Solaris 10
  • Ошибка rsync: значение времени файла, усеченного на приемнике
  • Копирование новейших файлов
  • Универсальная альтернативная альтернатива non-bash `time`?
  • Временная метка оборудования с использованием PTP
  • эпоха для GMT
  • Linux и Unix - лучшая ОС в мире.