Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Tar搜索结果位于.sh文件中_Linux_Find_Sh_Tar - Fatal编程技术网

Linux Tar搜索结果位于.sh文件中

Linux Tar搜索结果位于.sh文件中,linux,find,sh,tar,Linux,Find,Sh,Tar,我必须对文件列表进行tar,没有路径,这是通过sh查找的结果(用于crontab) 在ubuntu的shell中,每个命令都可以正常工作,但在.sh中则不行 我试过: #!/bin/sh tar -zcvf /destination/one-$(date +"%Y%m%d").tgz < find /myfolder/ -iname 'one*' -printf '%f\n' 但两者都失败了。有人能帮忙吗?替代品 其他场景信息: /myfolder/包含: one1.log on

我必须对文件列表进行tar,没有路径,这是通过sh查找的结果(用于crontab)

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

我试过:


#!/bin/sh
tar -zcvf  /destination/one-$(date +"%Y%m%d").tgz < find /myfolder/ -iname 'one*' -printf '%f\n'
但两者都失败了。有人能帮忙吗?替代品

其他场景信息:

  • /myfolder/包含:
    • one1.log
    • one2.log
    • one3.log
    • two1.log
    • two2.log
      我想要一个包含one1.log、one2.log、one3.log的.tgz

我想您正在寻找将文件名传递到
stdin上的
tar

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

它看起来不错,但可能会将tar命令中的
destination/..
目录更改为绝对路径。像
tar-czvf/your/folder/path/destination/one-$…
My error reporting.sh variable value:in.sh路径来自一个变量:DESDIR=/app/zips离我不远第二次尝试:find/myfolder/-iname'one*'-print0 | tar-czvf/destination/one-$(日期+%Y%m%d).tar.gz--null-T-这也不能像我那样在结尾使用
-f
。这不起作用:find/myfolder/-iname'one*'-print0 | tar-cv--null-T--f/destination/one-$(date+%Y%m%d”)。tar它创建了一个没有内容的tar文件,您需要进行简化,直到它起作用。尝试删除
|…
并查看
find
是否输出任何内容,尝试用简单字符串替换
$(日期…
。解决方案:用双引号代替apix:find/myfolder/-iname“one*”-print0 | tar-czv--null-T--f/destination/one-$(日期+%Y%m%d”).tar gz
find /myfolder/ -iname "one*" -print0 | tar -czv --null -T- -f /destination/one-$(date +"%Y%m%d").tar.gz