Список недавно измененных файлов для каталога и всех его подкаталогов

14

В Linux я знаю эту команду, чтобы найти и вывести список последних измененных файлов в каталоге со всеми его подкаталогами.

find /var/www/ -type f -exec stat --format '%Y :%y %n' {} \; | sort -nr | cut -d: -f2- | head

Есть ли эквивалент Windows CLI?

JohnnyFromBF
источник
Вы ищете только измененные файлы? Или вы смотрите на все файлы?
Келтари
1
Я уверен, что PowerShell может сделать это намного проще, чем пакетный режим , но если вам абсолютно необходимо использовать последний вариант ... Попробуйте dir /a-d /o-d /tw /s(показать только файлы, упорядочить по дате по убыванию, использовать время последней записи для сортировки, перейти в поддиректории). Однако это перечислит все файлы. Чтобы ограничить список только n последними измененными файлами, используйте блестящее решение dbenham здесь .
Каран
Пара комментариев к команде Linux: (1) Вместо этого -execвы можете рассмотреть xargs. (2) Если вы, как вы говорите, хотите отсортировать все дерево каталогов (подкатегорий) по дате изменения (а затем взглянуть на новейшее N ), то то, что у вас есть, является разумным. Но если вы можете получить необходимую информацию, найдя все файлы, измененные за последние N дней, посмотрите на find … -mtime ….
Скотт
2
Чтобы добавить в мой предыдущий комментарий, вы также можете посмотреть в forfiles /s /d +<date>.
Каран

Ответы:

21

PowerShell 2.0

Последние 10 измененных файлов

Dir C:\folder -r | ? {! $_.PSIsContainer} | sort LastWriteTime | select -last 10

Измененные файлы с указанной даты

Dir C:\folder -r | ? {! $_.PSIsContainer -AND $_.lastwritetime -ge '04/18/14'} 

Узнайте больше на http://ss64.com/ps/

nixda
источник
Если вы просто хотите показать каталоги с измененными файлами, сделайте это. Dir d: \ sftp -r | ? {! $ _. PSIsContainer -AND $ _. Lastwritetime -ge '05 / 25/2018 '} | Справочник по findstr
Роб
0
dir c:\windows\ /aa /s /O-D

Перечисляет все файлы с установленным (измененным) атрибутом архива в папке c: \ windows и всеми его подпапками по дате (сначала самые новые)

Редактировать: Этот метод будет работать только в том случае, если вы очистите биты архива в какой-то момент или список будет только расти и расти.

Keltari
источник
1
Какое отношение имеет атрибут Archive к недавно измененным файлам?
Каран
1
Все . Любой измененный файл получает атрибут архива, установленный ОС. Вот как программы резервного копирования знают, что файл изменился и его необходимо создать.
Келтари
3
Ваше редактирование чрезвычайно важно. Файлы с + A уже не увидят изменений. Почему бы не найти способ сделать это на основе даты изменения?
Каран
0

Взгляните на MT Watcher Changes. Может быть, это подходит для ваших нужд.

Программа отслеживает изменения файлов в определенном каталоге (Watch directory), а затем копирует измененные файлы в другую папку (Mirror directory), сохраняя структуру каталога. Это может быть очень полезно, когда у вас есть локальная копия удаленного сайта и вы хотите загружать только файлы, которые были изменены локально после последней загрузки.

http://mito-team.com/projects/dcw

Мишутка
источник