在BSD,所述-j
用於防止所設置的日期和-f
參數用於設定輸入的日期的格式。 :
首先,你需要找到今天的天數日期自1970年1月1日:
today=$(date -j -f "%Y-%m-%d" 1969-12-31 +%s)
現在,你可以用它來找出時間七天前:
((cutoff = $today - 604800))
數字604800是七天內的秒數。
現在,對於目錄中的每個文件,都需要找到字符串的日期部分。我不知道更好的方法。 (也許有人知道一些Bash魔法)。
find . -type f | while read fileName
do
fileDate=$(echo $foo | sed 's/.*-\([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\).*/\1/')
yadda, yadda, yadda #Figure this out later
done
一旦我們有文件的日期,我們可以使用日期命令,如果該日期要弄清楚在幾秒鐘不到(因此比截止日期之前)
today=$(date -j -f "%Y-%m-%d" 1969-12-31 +%s)
((cutoff = $today - 604800))
find . -type f | while read fileName #Or however you get all the file names
do
fileDate=$(echo $foo | sed 's/.*-\([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\).*/\1/')
fileDateInSeconds=$(date -j -f "%Y-%m-%d" $fileDate +%s)
if [ $fileDateInSeconds -lt $cutoff ]
then
rm $fileName
fi
done
在Linux中,您使用-d
參數來定義必須是在YYYY-MM-DD
格式的日期:
today=$(date +"%Y-%m-%d)
現在,您可以採取的,找到的秒數:
todayInSeconds=(date -d $today +%s)
其他一切應該或多或少與上述相同。
+1難以擊敗 – leonbloy 2011-05-23 17:52:42