2017-03-06 1 views
0

경로없이 파일 목록을 tar로 찾아야합니다 (crontab을 사용하는 경우)..tar 검색 결과 .sh 파일

우분투의 셸에서 각 명령은 정상적으로 작동하지만 .sh에는 없습니다.


#!/bin/sh 
find /myfolder/ -iname 'one*' -print0 | tar -czvf /destination/one-$(date +"%Y%m%d").tar.gz --null -T - 

하지만 모두 실패로도


#!/bin/sh 
tar -zcvf /destination/one-$(date +"%Y%m%d").tgz < find /myfolder/ -iname 'one*' -printf '%f\n' 

그리고 :

내가 함께했습니다. 누군가 도와 줄 수 있습니까? 대안?

추가 시나리오 정보 :

  • /MyFolder에 /가 포함되어
    • one2.log
    • one1.log
    • two1.log
    • one3.log
    • two2. 로그
      나는 one.tgz을 원한다.
+0

괜찮아 보이지만 tar 명령의'destination/...'디렉토리를 절대 경로로 변경하십시오. 'tar -czvf/your/folder/path/destination/one - $ .....' – JNevill

+0

내 실수보고 .sh 변수 값 : .sh에서 변수의 경로 cames : DESDIR =/app/zips –

답변

0

one3.log, one2.log, one1.log 포함 당신이 stdintar에 파일 이름을 전달하고자하는 생각 : 내 경우

find . -name \*.png -print0 | tar -cv --null -T- -f tarball.tar 

:

find /myfolder/ -iname "one*" -print0 | tar -czv --null -T- -f /destination/one-$(date +"%Y%m%d").tar.gz 
+0

아니요 멀리 내 두 번째 시도 : find/myfolder/-iname 'one *'-print0 | tar.gz - null -T- 이것도 작동하지 않습니다. –

+0

끝 부분에'-f'를 시도해보십시오. (예 : "% Y % m % d" 나는 그랬다. –

+0

이것은 작동하지 않습니다 : find/myfolder/-iname 'one *'-print0 | tar -cv --null -T- -f/destination/one - $ (date + "% Y % m % d"). tar 내용이없는 tar 파일을 만듭니다. –