2012-11-19 6 views
0

나는 (테스트하지)는 "온라인 파일"에 타임 스탬프를 비교

wget --user=userName --password=passWord --timestamping https://url.to/a/file.csv.gz 
gzip -cd file.csv.gz > file.csv 

같은

서버에 인증이 있어야한다는 사실을 명심 해.

파일은 로컬 파일보다 최신 파일 인 경우에만 다운로드됩니다. 이것은 좋다.

그러나 원격 파일이 로컬 파일보다 새로운 경우에만 2 행도 실행해야합니다.

어떻게하면됩니까?

답변

6

file.csv.gz의 수정 시간이 file.csv보다 새로운 지 확인하기 만하면됩니다. 리눅스에

:

if [ $(stat -c '%Y' file.csv.gz) -gt $(stat -c '%Y' file.csv) ]; then 
    gzip -cd file.csv.gz > file.csv 
fi 

BSD에 (맥 OS X와 ​​같은) :

if [ $(stat -f '%m' file.csv.gz) -gt $(stat -f '%m' file.csv) ]; then 
    gzip -cd file.csv.gz > file.csv 
fi 

다른 시스템이 stat에 다른 인자를 가질 수있다; 시스템에 man stat을 확인하십시오. 쉘 내장이라면 help stat을 확인하십시오.

+0

방금 ​​시도했습니다 ... 'stat : 파일 시스템 정보를 읽을 수 없습니다'와 같은 오류 메시지가 표시됩니다. (죄송합니다. 컴퓨터에 영어로 표시되지 않습니다.) – speendo

+1

@speendo 죄송합니다. stat의 인수는 다릅니다. 리눅스와 BSD (예 : 맥 오에스텐, 내가 읽었던 문서들). 내 대답을 편집하여 두 버전을 모두 포함 시켰습니다. 자세한 내용은'stat'에 대한 인수를 확인하십시오. 특히 에포크 이후의 수정 날짜를 초 단위로 나타내는 형식 문자열이 필요합니다. –

+0

** + 1 ** 올바른 * 및 * 휴대용 답변입니다. :) – ghoti

관련 문제