在.sh文件中的tar搜索结果

问题描述:

我必须tar一个没有路径的文件列表,这是通过sh查找(用于crontab使用)的结果。在.sh文件中的tar搜索结果

在ubuntu的shell中,每个命令都可以正常工作,但在.sh不是。

我试着用:


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

而且还与


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

但都失败了。有人可以帮忙吗?备择方案 ?

附加场景信息:

  • /MyFolder中/载:
    • one1.log
    • one2.log
    • one3.log
    • two1.log
    • two2。日志
      我想one.tgz含one1.log,one2.log,one3.log
+0

看起来很好,但可能会将tar命令中的destination/...目录更改为绝对路径。像'tar -czvf/your/folder/path/destination/one - $ .....' – JNevill

+0

我的错误报告.sh变量值:in .sh路径来自一个变量:DESDIR =/app/zips –

我认为你正在寻找的文件名传递给tarstdin

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 -czvf/destination/one - $(date +“%Y%m%d”)。tar.gz --null -T- 这也行不通 –

+0

试着用'-f'结尾我做到了。 –

+0

这不起作用:find/myfolder/-iname'one *'-print0 | tar -cv --null -T -f/destination/one - $(date +“%Y%m%d”)。tar 它创建一个没有内容的tar文件 –