首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在压缩不同目录中的文件时遇到问题

在压缩不同目录中的文件时遇到问题
EN

Stack Overflow用户
提问于 2013-03-20 01:50:30
回答 2查看 2K关注 0票数 0

实际上,我要做的是获取/servers/文件夹中的所有目录,并将它们移动到挂载在/media/backupdrive/的辅助硬盘驱动器中。这个脚本每天运行一次,所以它使用日期的名称创建目录,并且应该直接将文件夹复制到那里(我必须这样做的原因是因为我的客户在他的主硬盘驱动器上的磁盘空间有限,并且他的世界每个都在6-7 7gb以上)。无论如何,我可以让他们将文件夹复制到/media/backupdrive/currentdate,但是当我尝试压缩它时,它告诉我不能压缩空目录或类似的东西。

代码如下:

代码语言:javascript
复制
#!bin/bash
folderName=$(date +"%m-%d-%y")
mkdir "/media/backupdrive/$folderName"

for i in servers/*; do
    cp -rf $i /media/backupdrive/$folderName/
    cd /media/backupdrive/$folderName/
    tar -C ${i:8} -czvf "${i:8}.tar.gz"
    cd /root/multicraft/
done

对不起,图片是在一个虚拟机上,我不得不重新输入,因为我不能复制和粘贴。

EN

回答 2

Stack Overflow用户

发布于 2013-03-20 05:19:14

在我看来,您的tar命令缺少输入(例如,最后一个"."),因此显示为"tar:胆小的拒绝创建空存档“。

您的脚本似乎适用于我的tar命令:

代码语言:javascript
复制
tar -C ${i#servers/} -czvf "${i#servers/}.tar.gz" .
票数 3
EN

Stack Overflow用户

发布于 2013-03-20 06:33:54

我会尝试一种稍微不同的方法。tar本身并不使用临时文件,因此您可以将源代码直接tar到目标位置,然后在第二步中使用gzip压缩它们。

代码语言:javascript
复制
#!bin/bash

dst="/media/backupdrive/$(date +"%m-%d-%y")"

for d in servers/*; do
  tarfile="$dst/${d#servers/}.tar"
  tar -C "$d" -cvf "$tarfile" .
  gzip -9 "$tarfile"
done
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15506835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档