Shell 从一个目录到另一个目录的ubuntu脚本到cp
我正在写一个脚本来完成以下任务 我有这样的目录 /家庭/用户/ac /主页/用户/nf /主页/用户/tu /主页/用户/ms 。 . . N 在每个目录中有两个文件夹,一个是数据,另一个是es备份,如下所示。 /主页/用户/ac/数据 /主/用户/交流/备份 到目前为止,我的剧本是这样的。 找到-名称数据-类型d-maxdepth 2-mindepth 2 但我需要的是一个脚本,它将位于数据内部的所有内容“动态地在/home/user*下的所有目录中”复制到每个用户的备份目录中。比如像这样的事情 cp/home/users/ac/Data/*/home/users/ac/Backup 我需要一些自动化的东西,在/home/users/*下循环每个用户,并为每个用户将数据从数据目录复制到备份目录Shell 从一个目录到另一个目录的ubuntu脚本到cp,shell,ubuntu,Shell,Ubuntu,我正在写一个脚本来完成以下任务 我有这样的目录 /家庭/用户/ac /主页/用户/nf /主页/用户/tu /主页/用户/ms 。 . . N 在每个目录中有两个文件夹,一个是数据,另一个是es备份,如下所示。 /主页/用户/ac/数据 /主/用户/交流/备份 到目前为止,我的剧本是这样的。 找到-名称数据-类型d-maxdepth 2-mindepth 2 但我需要的是一个脚本,它将位于数据内部的所有内容“动态地在/home/user*下的所有目录中”复制到每个用户的备份目录中。比如像这样的事
我将非常感谢您提供的任何帮助,提前感谢您的时间。您可能想看看如何使用rsync来实现这一点。它很容易编写脚本,您可以随时使用cron运行脚本。很久以前,我曾为此使用一个名为mirrordir的实用程序,但它已经不在Ubuntu存储库中了
本教程中出现了一个快速搜索:您可能想看看如何使用rsync来实现这一点。它很容易编写脚本,您可以随时使用cron运行脚本。很久以前,我曾为此使用一个名为mirrordir的实用程序,但它已经不在Ubuntu存储库中了
本教程中出现了一个快速搜索:一个
for
循环和cp-R
的简单应用程序将解决您的问题
cd /home/users
for i in ./*; do cp -Ra "$i"/Data/* "$i"/Backup/; done
一个
for
循环和cp-R
的简单应用将解决您的问题
cd /home/users
for i in ./*; do cp -Ra "$i"/Data/* "$i"/Backup/; done
到目前为止,所有POSIX shell中都提供了您所拥有的一切,因此在许多其他shell中都应该可以工作,而无需修改。当然,每隔一个POSIX shell中也会出现相同的错误。要修复它们,请引用每次出现的
$i
,使它们成为“$i”
,并使用/*
而不是*”,以确保安全(即使所有用户目录都是2个ASCII小写字母,也可能不需要这样做,但安全始终是一种良好的做法)。否则就是一个好答案(+1)。另外,也许考虑< <代码> -保存=全部或<代码> -<代码>选项>代码> Cp<代码>,因为这似乎是一个备份脚本。@若泽路易斯罗德里格兹萨拉斯不要忘记接受最适合你的答案。(每个答案都有一个复选标记的大轮廓,单击该复选标记接受它旁边的答案。)到目前为止,所有POSIX Shell中都提供了您所拥有的一切,因此在许多其他Shell中都应该可以工作*而无需修改。当然,每隔一个POSIX shell中也会出现相同的错误。要修复它们,请引用每次出现的$i
,使它们成为“$i”
,并使用/*
而不是*”,以确保安全(即使所有用户目录都是2个ASCII小写字母,也可能不需要这样做,但安全始终是一种良好的做法)。否则就是一个好答案(+1)。另外,也许考虑< <代码> -保存=全部或<代码> -<代码>选项>代码> Cp<代码>,因为这似乎是一个备份脚本。@若泽路易斯罗德里格兹萨拉斯不要忘记接受最适合你的答案。(每个答案都有一个复选标记的大轮廓,单击该复选标记可接受它旁边的答案。)