我正在尝试创建一个shell脚本,将这些文件夹中的文件夹和文件从一台Linux机器复制到另一台Linux机器。复制后,我想只删除复制的文件。我想保留文件夹结构。
EG。
机器X有一个名为F的主文件夹,其子文件夹为A,B,C文件夹,其中每个文件夹都有10个文件。
我想以这样一种方式制作副本:机器Y将有一个名为F的文件夹,子文件夹A,B,C包含相同的文件。完成所有文件夹和文件的副本后,应删除源文件夹中的所有文件但保留文件夹。
答案 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失败,则命令的第二部分不会执行