使用tar和bash脚本进行压缩:第n行是一个目录

时间:2012-12-12 10:31:52

标签: bash shell

我是bash脚本的新手,现在尝试使用它制作一个备份文件。我面临的是脚本(我的bash文件中的第47行),

$(tar -czvPf ${folder_backup}/rajal/backup.tgz -C /var/www/tmk/app .)

总是在shell ./test: line 47: ./: Is a directory上给我一个gimme错误,而它在终端上工作很好。

仅供参考,文件夹应用程序是包含文件和子文件夹的文件夹。

有人可以帮帮我吗?谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

$(command)

表示:执行command并返回其输出。为了说明,它经常被这样使用:

result=$(foo 4 123)

评估完成后,result将保留命令foo 4 123输出的任何内容。

如果直接使用该构造 - 不作为另一个命令的参数,或者在变量赋值中,shell将尝试执行命令的输出。虽然这通常是需要的,但通常不是,这就是你所看到的。

所以只需从命令中删除$( )并直接运行tar即可。如果要捕获tar的输出,请将其重定向到文件或使用上面的构造。


请注意$(command)${env_var_name}完全不同。语法很重要。

答案 1 :(得分:0)

与@Mat Why do you have $( ) around the tar?一样,所以我刚删除了它,它现在正在运行:D