Jak usunąć pliki starsze niż…

12 listopada, 2011 (20:48) | linux, windows | By: konrad

Do napisania tego postu skłoniło mnie pewne wydarzenie…

Kilka lat temu napisałem w VBscripcie prosty skrypt, który kasuje pliki starsze, niż zadana ilość dni. Niby nic wielkiego – tych kilku linijek kodu używam z powodzeniem do dnia dzisiejszego i zawsze działa to tak samo dobrze. Niedawno jeden z moich współpracowników potrzebował zautomatyzować pewien proces i musiał zrobić dokładnie to samo, co mój skrypt. Poszedł jednak zupełnie inną drogą i mój misterny kod został bez litości „zredukowany” do jednej linijki. Jest to doskonały przykład na to, że nie zawsze to, czego używamy od wielu lat jest na pewno najlepsze i najbardziej optymalne.
Na swoje usprawiedliwienie mogę napisać jedynie to, że mój skrypt powstał jako część większej całości i nie zastanawiałem się wtedy, czy istnieje jakieś specjalne polecenie, którym mógłbym wykonać zadaną czynność. Dopisałem po prostu kolejną część w języku, którego akurat używałem.

Mój skrypt, który wygląda tak:Option Explicit
'
' Skrypt kasuje wszystkie pliki z katalogu "path", które są starsze, niż "max_age" dni
'
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")
Dim path : path = "c:\what\ever"
Dim folder : Set folder = FSO.GetFolder(path)
Dim max_age : max_age = 3
Dim file, age
'
For Each file In folder.Files
age = CStr(DateDiff("s", file.DateLastModified, Now))
age = age\(3600*24)
If age > max_age Then
WScript.Echo Now & " - kasuje plik: " & path & "\" & file.Name
FSO.DeleteFile(path & "\" & file.Name)
End If
Next
'
WScript.Quit

został zastąpiony taką oto linijką:forfiles -p "C:\what\ever" -s -m *.* -d -3 -c "cmd /c del @path"

 

 

A co w przypadku Linuksa? Tutaj – szczęśliwie – zawsze używałem konstrukcji, którą chyba dość trudno będzie uprościć:

find /sciezka/do/plikow/* -mtime +10 |xargs rm -rf

Wiem, że można użyć parametru „exec” finda i zapisać powyższe jakoś tak:
find /sciezka/do/plikow/* -mtime +10 -exec rm -rf {} \;
jednak połączenie z xargs wydawało mi się zawsze bardziej „poukładane” :-)

Trackback URL: http://konrad.bechler.pl/2011/11/jak-usunac-pliki-starsze-niz/trackback/

«

»

Write a comment





*