Lista ostatnio zmienionych plików dla katalogu i wszystkich podkatalogów


14

W systemie Linux znam to polecenie, aby znaleźć i wyświetlić najnowsze zmodyfikowane pliki w katalogu ze wszystkimi jego podkatalogami.

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

Czy istnieje odpowiednik interfejsu wiersza polecenia systemu Windows?


szukasz tylko zmodyfikowanych plików? A może przeglądasz wszystkie pliki?
Keltari

1
Jestem pewien, że PowerShell może to zrobić o wiele łatwiej niż wsadowo, ale jeśli absolutnie musisz użyć tego drugiego ... Spróbuj dir /a-d /o-d /tw /s(pokaż tylko pliki, sortuj według daty malejącej, użyj czasu ostatniego zapisu do sortowania, przejdź do podkatalogów). Spowoduje to jednak wyświetlenie listy wszystkich plików. Aby ograniczyć listę tylko do n najnowszych zmodyfikowanych plików, skorzystaj z doskonałego rozwiązania dbenham tutaj .
Karan

Kilka komentarzy na temat polecenia Linux: (1) Zamiast tego -execwarto rozważyć xargs. (2) Jeśli, jak mówisz, chcesz posortować całe drzewo (pod) katalogu według daty modyfikacji (a następnie spojrzeć na najnowsze N ), to co masz, jest rozsądne. Ale jeśli możesz uzyskać potrzebne informacje, znajdując wszystkie pliki zmodyfikowane w ciągu ostatnich N dni, spójrz na find … -mtime ….
Scott

2
Aby dodać do mojego poprzedniego komentarza, możesz również zajrzeć do forfiles /s /d +<date>.
Karan

Odpowiedzi:


21

PowerShell 2.0

Ostatnie 10 zmienionych plików

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

Zmieniono pliki od podanej daty

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

Czytaj więcej na http://ss64.com/ps/


Jeśli chcesz tylko pokazać katalogi ze zmodyfikowanymi plikami, zrób to. Dir d: \ sftp -r | ? {! $ _. PSIsContainer -AND $ _. Lastwritetime -ge '05 / 25/2018 '} | findstr Directory
Rob

0
dir c:\windows\ /aa /s /O-D

Wyświetla listę wszystkich plików z ustawionym atrybutem archiwum (zmodyfikowanym) w folderze c: \ windows i wszystkich jego podfolderach według daty (najpierw najnowsze)

Edycja: Ta metoda zadziała tylko wtedy, gdy wyczyścisz bity archiwum w pewnym momencie lub lista będzie się powiększać.


1
Co atrybut Archive ma wspólnego z ostatnio zmienionymi plikami?
Karan

1
Wszystko . Każdy zmieniany plik otrzymuje atrybut archiwizacji ustawiony przez system operacyjny. W ten sposób programy do tworzenia kopii zapasowych wiedzą, że plik się zmienił i należy wykonać jego kopię zapasową.
Keltari

3
Twoja edycja jest niezwykle ważna. Pliki z + A już nie zobaczą żadnych zmian. Dlaczego nie znaleźć sposobu, aby to zrobić w oparciu o datę modyfikacji?
Karan

0

Spójrz na Obserwator zmian katalogu MT. Być może jest to odpowiednie dla twoich potrzeb.

Program śledzi zmiany plików w danym katalogu (katalog oglądania), a następnie kopiuje zmienione pliki do innego folderu (katalog kopii lustrzanej), zapisując strukturę katalogów. Może to być bardzo przydatne, gdy masz lokalną kopię witryny zdalnej i chcesz przesłać tylko pliki zmienione lokalnie po ostatnim przesłaniu.

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.