我有以下目录结构:
base/
files/
archives/
scripts/
Run Code Online (Sandbox Code Playgroud)
我想一个脚本来运行的scripts/,压缩文件,那场比赛results.*.log中files/为gzip压缩tar归档文件中archives/。
我正在尝试以下命令:
tar czfC ../archives/archive.tar.gz ../files results.*.log
Run Code Online (Sandbox Code Playgroud)
但我得到
tar: results.*.log: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
Run Code Online (Sandbox Code Playgroud)
尽管
tar czfC ../archives/archive.tar.gz ../files results.a.log
Run Code Online (Sandbox Code Playgroud)
按预期工作。还
tar czf ../archives/archive.tar.gz ../files/results.*.log
Run Code Online (Sandbox Code Playgroud)
以我想要的方式工作,除了它将前缀添加files/到文件并发出警告:
tar: Removing leading `../' from member names
Run Code Online (Sandbox Code Playgroud)
所以我的结论是,tar使用该-C选项时,globbing 无法正常工作。关于如何以简单的方式完成这项工作的任何建议?
如果我这样做tar -czf archive directory,目录将被添加到存档中。我想添加文件夹的文件directory而不是目录本身,如何?
请建议答案,不涉及cd荷兰国际集团,以directory
这与其显示的内容不同:
我有一个目录somedir,内容为abc, xyz:
ls somedir
abc xyz
Run Code Online (Sandbox Code Playgroud)
我想使档案将包含的文件abc,xyz而不是somedir文件夹
更新:如果我使用命令tar -C /home/username/dir1/dir2 -cvf temp.tar yourarchive(我的问题被称为重复的问题的答案)
我得到这个:

我想要的是tar czf archive.tar.gz -C yourarchive .,我得到了这个(这与我想要的足够接近):

我想要的是这个(直接文件,没有文件夹):

我有一个名为backup.sh. 我只想备份html目录及其所有子目录和文件。但是我正在获取目录的所有父目录,html例如var,www这对我来说不是必需的。
我粘贴下面的代码:
#!/bin/bash
#Purpose = Backup of Important Data
DATE=$(date +"%d-%b-%Y")
SRCDIR="/var/www/html"
DESDIR="/media/HDD-01/html"
FILENAME=html-$DATE.tar.gz
# Making backup with compress
tar -cpzf $DESDIR/$FILENAME $SRCDIR
Run Code Online (Sandbox Code Playgroud)
我从下面的链接得到了这个代码:
http://broexperts.com/2012/06/how-to-backup-files-and-directories-in-linux-using-tar-cron-jobs/
谁能建议我如何解决我的问题?
提前致谢。