加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用bash脚本备份旧目录

发布时间:2020-12-15 18:32:43 所属栏目:安全 来源:网络整理
导读:我正在编写一个小的bash脚本,当它们超过某个年龄且遇到一些困难时,会以压缩格式将目录存档到另一个位置.这就是我正在做的事情. #!/bin/bash# Archives completed CDP episodes to compressed storage. Will eventually expand to put these off-site as well
我正在编写一个小的bash脚本,当它们超过某个年龄且遇到一些困难时,会以压缩格式将目录存档到另一个位置.这就是我正在做的事情.
#!/bin/bash
# Archives completed CDP episodes to compressed storage. Will eventually expand to put these off-site as well.

InputDir="/home/wgant/stuff/"
OutputDir="/home/wgant/archived/"

find $InputDir$-maxdepth 0 -mtime +1 -type d -exec echo $OutputDir${} ;

我在bash上有点绿,所以我慢慢来.对于第一步,我只想转储一个输出文件将被调用的列表.但是,当我运行上面的命令时,文件名是正确的,但完整的路径显然是连接在一起,我不想要.我如何删除文件名?

显然,一旦这个工作,我将调用它来创建tarball并删除有问题的目录.

语法不太对,这更好:
find $InputDir -maxdepth 0 -mtime +1 -type d -exec echo $OutputDir{} ;

要删除路径的前缀部分,一种简单的方法是在执行find之前进入目录,如下所示:

InputDir="/home/wgant/stuff"
OutputDir="/home/wgant/archived"

(cd "$InputDir"; find . -maxdepth 0 -mtime +1 -type d -exec echo "$OutputDir"/{} ;)

请注意,我将最后一个命令包装在(…)中.这是一个子壳,它的目的是cd命令只在其中有效,脚本的其余部分不会受其影响.这很重要,因为不建议在脚本中使用cd更改工作目录.将其包裹在(…)内使其安全.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读