2013-03-08 3 views
0

특정 날짜에 생성 된 파일의 수를 압축 싶습니다. 나는이 명령은 날짜에 생성 된 .csv 확장자 루트 디렉토리에있는 모든 파일을 압축이 명령유닉스에서 최신 파일을 압축하는 방법

zip -rt 06222012 TEST root/*.csv 

를 사용> =

/2,012분의 6 (22) 그러나이 내 요구 사항을 충족하지 않습니다. 내 요구 사항은 .. a.sh와 b.sh 두 개의 스크립트가 있다고 가정 해 보겠습니다. a.sh (수동 실행)는 2011 년 6 월 22 일 오전 1:00에 실행하고 2012/6/6 4:00에 완료합니다. AM을 생성하고 4 개의 .csv 파일을 생성합니다

이 b.sh 파일은 2012 년 6 월 22 일 오전 6시에 cron 작업을 통해 실행되고 2012 년 6 월 22 일 오전 10시에 완료되고 5 개의 .csv 파일

위의 zip 명령을 사용하면 이러한 9 개의 파일이 모두 같은 날 (예 : 2020 년 6 월 22 일)에 작성되므로 압축 할 수 있지만 b.sh에서만 만든 5 개의 .csv 파일 만 필요합니다. 2012/22/26에 생성됨 10:00 AM

위의 zip 명령에서 나는 또한 시간과 분도?

+1

그들을 만드는 스크립트에 따라'* .csv'에 대해 더 명백한 이름을 갖는 것은 어떻습니까? 'a.sh'에 대해'* 4.csv'를하면'zip -rt 06222012 TEST root/* 4.csv' 할 수 있습니다. – fedorqui

+0

'-t' 옵션은 ** creation ** time이 아닌 ** modification ** time을 다룬다. POSIX에서는 파일 생성 시간이 기록되지 않습니다. – Celada

답변

1

표준 파일 시스템을 사용할 때 위의 주석에서 언급 한 사실을 감안할 때 유일한 기회는 "파일이 마지막으로 수정 된 파일"로 "생성 된 파일"을 근사화하는 것입니다. find을 사용하여 문제를 해결할 수 있습니다.

이미 유래에 그것에 대해 좋은 기사가있다 (참조 : Shell Script — Get all files modified after <date>를)

귀하의 경우에 대해서는 대부분의 아마 -newerXY 옵션은 같은과 문제에 대한 하나의 최고의 피팅 수 있습니다 :

zip -r TEST `find root -name"*.csv" -newermt 10:00` 
+1

모두에게 감사드립니다. 사실 파일은 a.sh와 b.sh라는 두 개의 스크립트에 의해 호출되는 SQL 프로 시저에 의해 만들어지며 하나는 럼 수동으로, 다른 하나는 cron 작업을 통해 생성됩니다. 파일 이름에는 연도, 월 및 특정 이름이 포함됩니다. 이러한 것들은 SQL 프로 시저에서 동적으로 생성됩니다. 위의 테스트 케이스 하나를 놓친 것입니다. 나는이 코드를 통해 내가 수동 파일 (a.sh)이 4 개의 파일을 생성한다고 가정하기 때문에 올바른 파일을 압축 할 수 없을 것이라고 생각한다. 26/4/2012 4 am ~ 26/4/2012 10 am, 1 file 4시 30 분, 또 다른 6시, 다른시 8시, 다른시 8시 그리고 마지막 한시 10시 – Qwertyash

+1

크론 작업 (b.sh)이 2012 년 4 월 26 일 오전 6 시부 터 오전 2시 26 분까지 오후 2시에 실행될 때, 오전 6시 30 분에 생성되고, 오전 9시에 생성됩니다. 따라서이 코드를 통해 우편 번호를 확인하는 경우, 필자는 필요없는 a.sh를 통해 작성된 파일 중 일부를 압축 할 것입니다. 이제는이 옵션 만 보았습니다. SQL 프로 시저가 실행 중일 때 파일을 만들 때 그 이름을 임시 파일에 기록한 다음 유닉스를 통해 해당 파일을 읽고 해당 특정 파일 만 압축합니다. .sql 파일을 변경하지 않고 다른 옵션을 본다면 유닉스 스크립트로도이를 수행 할 수 있습니다. – Qwertyash

+0

알려주십시오. 문제가 제대로 이해된다면 관심있는 b.sh를 실행하여 생성 된 파일 일뿐입니다 이것이 b.sh에 의해 생성 된 파일을 추측하는 대신에 나중에 b.sh에서 생성 된 파일을 직접 압축하는 것이 더 나을 수도 있습니다. b.sh 스크립트에서 직접 압축 된 경우 정보가 직접 존재하기 때문에 어떤 스크립트가 파일을 생성했는지 파악할 필요가 없습니다. 다른 이름으로 파일에 태그를 지정할 수도 있습니다 (예 : 'xxx.a.csv''와'xxx.b.csv'를 입력하십시오. – mikyra

관련 문제