linux - 在创建 tar 文件时,整个路径被创建为 tar 文件

标签 linux shell sh tar

您好,我创建了一个 shell 脚本来备份目录中的内容。它创建文件但保留整个路径。

这是我的代码

#!/bin/sh

#creating the destination file
dest="../Demo_Projects/backup/"

#the file name to be created
fname=ug-$(date +%-Y%-m%-d)-$(date +%-T).tgz

#executing the script
tar -cPf $dest$fname "../Demo_Projects/JsonP/"

这会创建 tar 文件,但整个路径会保留在 tar 文件中。 有没有办法让我们只拥有最里面的目录。

我知道这个问题以前有人回答过 tar file preserves full path. how to stop it?

但是当我按照答案-我修改后的代码如下

#!/bin/sh

#creating the destination file
dest="../Demo_Projects/backup/"

#the file name to be created
fname=ug-$(date +%-Y%-m%-d)-$(date +%-T).tgz

#executing the script
exec('cd /home/abhishek/Demo_Projects/ && tar -cPf $dest$fname /JsonP/')

但这会导致运行时错误

abhishek@pk:~/sh$ ./backup_demo.sh
./backup_demo.sh: 11: ./backup_demo.sh: Syntax error: word unexpected (expecting ")")

我是 shell 脚本的新手,如有任何帮助,我将不胜感激。 谢谢。

最佳答案

这个

#executing the script
exec('cd /home/abhishek/Demo_Projects/ && tar -cPf $dest$fname /JsonP/')

应该是

#executing the script
cd /home/abhishek/Demo_Projects/ && tar -cPf $dest$fname /JsonP/

关于linux - 在创建 tar 文件时,整个路径被创建为 tar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16574879/

相关文章:

docker - 如何在 docker 容器内运行 cron 作业?

sh - typeset -i2 var=2#0 在 bash/korn shell 中意味着什么?

regex - 如何根据正则表达式递归查找当前文件夹和子文件夹中的所有文件

linux - gettext 编译在 cygwin 上的 crosstool-ng 构建中失败

linux - sshd_config 上允许用户,忘记设置 root

linux - 如何编写 shell 脚本以从 sar 报告中查找 ram 利用率的最小最大值和平均值

python - 使用 Linux 重定向从 Python 脚本覆盖文件

bash - 确保一次只运行一个 shell 脚本实例的快捷方式

linux - 如何使用 C++ 代码中的 setsockopt() 调用更改 TCP 拥塞控制算法

linux - 检查IP是否存在于/etc/hosts