Bro*_*and 78 unix linux gnu tar
我正在研究一个备份脚本,并想要建立一个文件目录:
tar czf ~/backup.tgz /home/username/drupal/sites/default/files
Run Code Online (Sandbox Code Playgroud)
这样可以解决这个问题,但是当我解压缩生成的文件时,它包含完整的文件结构:文件位于home/username/drupal/sites/default/files.
有没有办法排除父目录,以便生成的tar只知道最后一个目录(files)?
小智 161
使用--directory选项:
tar czf ~/backup.tgz --directory=/home/username/drupal/sites/default files
Run Code Online (Sandbox Code Playgroud)
Mai*_*oID 45
嗨,我在进入指定目录时有一个更好的解决方案,这是不可能的(Makefile等)
tar -cjvf files.tar.bz2 -C directory/contents/to/be/compressed .
Run Code Online (Sandbox Code Playgroud)
不要忘记最后的点(.)!!
Joh*_*ibb 33
cd /home/username/drupal/sites/default/files
tar czf ~/backup.tgz *
Run Code Online (Sandbox Code Playgroud)
tar -czf destination.tar.gz -C source/directory $(ls source/directory)
Run Code Online (Sandbox Code Playgroud)
这个解决方案:
.最终产品中不包含任何目录结构(或)但是,它要求提供两次目录,因此它在另一个脚本中可能最有用。如果source/directory. 根据需要调整子命令。
例如对于以下结构:
|- source
| |- one
| `- two
`- working
Run Code Online (Sandbox Code Playgroud)
以下命令:
|- source
| |- one
| `- two
`- working
Run Code Online (Sandbox Code Playgroud)
将生成destination.tar.gz其中one和two(以及子文件/文件夹)都是第一项的情况。
小智 5
tar czf $sourcedir/$backup_dir.tar --directory=$sourcedir WEB-INF en
Run Code Online (Sandbox Code Playgroud)
tar -xvf $deploydir/med365/$backup_dir.tar -C $deploydir/med365/
Run Code Online (Sandbox Code Playgroud)
scp -r -i $privatekey $sourcedir/$backup_dir.tar $server:$deploydir/med365/
echo "File uploaded.. deployment folders"
Run Code Online (Sandbox Code Playgroud)
ssh -i $privatekey $server tar -xvf $deploydir/med365/$backup_dir.tar -C $deploydir/med365/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81988 次 |
| 最近记录: |