如何将位置中的文件和子文件夹存档到linux中的另一个位置

时间:2014-12-08 20:20:07

标签: linux shell

我正在尝试创建一个shell脚本,将这些文件夹中的文件夹和文件从一台Linux机器复制到另一台Linux机器。复制后,我想只删除复制的文件。我想保留文件夹结构。

EG。

机器X有一个名为F的主文件夹,其子文件夹为A,B,C文件夹,其中每个文件夹都有10个文件。

我想以这样一种方式制作副本:机器Y将有一个名为F的文件夹,子文件夹A,B,C包含相同的文件。完成所有文件夹和文件的副本后,应删除源文件夹中的所有文件但保留文件夹。

2 个答案:

答案 0 :(得分:0)

以下代码未经测试。请谨慎使用并先备份。

这样的事情应该让你开始:

#!/bin/bash

srcdir=...

set -ex

rsync \
  --verbose \
  --recursive \
  "${srcdir}/" \
  user@host:/dstdir/

find "${srcdir}" -type f -delete

srcdir变量和远程参数设置为rsync。

rsync选项仅来自内存,因此可能需要调整。阅读the documentation,特别是有关删除,备份,权限和链接的选项。

(我宁愿不回答问题 请求显示没有努力的迹象,但我的手指很痒,所以你去。)

答案 1 :(得分:-1)

scp文件,检查scp的退出代码,然后在本地删除文件。

scp files user@remotehost:/path/ && rm files

这样的东西

如果scp失败,则命令的第二部分不会执行