Lista de arquivos alterados recentemente para um diretório e todos os subdiretórios

14

No Linux, conheço este comando para encontrar e listar os arquivos modificados mais recentes em um diretório com todos os seus subdiretórios.

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

Existe um equivalente da CLI do Windows?

JohnnyFromBF
fonte
você está procurando apenas arquivos modificados? Ou você está vendo todos os arquivos?
Keltari
1
Tenho certeza de que o PowerShell pode fazer isso com muito mais facilidade do que o lote, mas se você absolutamente precisar usá-lo ... Tente dir /a-d /o-d /tw /s(mostre apenas os arquivos, ordem por data decrescente, use o último tempo de gravação para classificar e recomeçar em subdiretórios). No entanto, isso listará todos os arquivos. Para limitar a lista apenas aos n arquivos modificados mais recentes, use a solução brilhante do dbenham aqui .
Karan
Alguns comentários sobre o comando Linux: (1) Em vez de -exec, você pode querer considerar xargs. (2) Se você, como diz, deseja classificar uma (sub) árvore de diretório inteira por data de modificação (e depois olhar para o N mais novo ), o que você tem é razoável. Mas se você puder obter as informações necessárias localizando todos os arquivos modificados nos últimos N dias, consulte find … -mtime ….
Scott
2
Para adicionar ao meu comentário anterior, você também pode pesquisar forfiles /s /d +<date>.
Karan

Respostas:

21

PowerShell 2.0

Últimos 10 arquivos alterados

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

Arquivos alterados desde a data especificada

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

Leia mais em http://ss64.com/ps/

nixda
fonte
Se você deseja apenas mostrar os diretórios com arquivos modificados, faça isso. Dir d: \ sftp -r | ? {! $ _. PSIsContainer -AND $ _. Lastwritetime -ge '05 / 25/2018 '} | diretório findstr
Rob
0
dir c:\windows\ /aa /s /O-D

Lista todos os arquivos com o conjunto de atributos de archive (modificado) na pasta c: \ windows e todas as suas subpastas por data (a mais nova primeiro)

Editar: este método só funcionará se você limpar os bits do arquivo em algum momento ou a lista apenas crescer e crescer.

Keltari
fonte
1
O que o atributo Arquivar tem a ver com arquivos alterados recentemente?
Karan
1
Tudo . Qualquer arquivo que é alterado obtém o atributo de arquivamento definido pelo sistema operacional. É assim que os programas de backup sabem que um arquivo foi alterado e precisa ser feito o backup.
Keltari
3
Sua edição é extremamente importante. Os arquivos com + A já não verão nenhuma alteração. Por que não encontrar uma maneira de fazer isso com base na data de modificação?
Karan
0

Dê uma olhada no MT Directory Changes Watcher. Pode ser que seja adequado às suas necessidades.

O programa observa alterações de arquivo em um diretório específico (diretório Watch) e copia os arquivos alterados para outra pasta (diretório Mirror), salvando a estrutura de diretórios. Isso pode ser muito útil quando você possui uma cópia local do site remoto e deseja fazer upload apenas de arquivos alterados localmente após o último upload.

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

MiSHuTka
fonte