Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 从一个目录到另一个目录的ubuntu脚本到cp_Shell_Ubuntu - Fatal编程技术网

Shell 从一个目录到另一个目录的ubuntu脚本到cp

Shell 从一个目录到另一个目录的ubuntu脚本到cp,shell,ubuntu,Shell,Ubuntu,我正在写一个脚本来完成以下任务 我有这样的目录 /家庭/用户/ac /主页/用户/nf /主页/用户/tu /主页/用户/ms 。 . . N 在每个目录中有两个文件夹,一个是数据,另一个是es备份,如下所示。 /主页/用户/ac/数据 /主/用户/交流/备份 到目前为止,我的剧本是这样的。 找到-名称数据-类型d-maxdepth 2-mindepth 2 但我需要的是一个脚本,它将位于数据内部的所有内容“动态地在/home/user*下的所有目录中”复制到每个用户的备份目录中。比如像这样的事

我正在写一个脚本来完成以下任务 我有这样的目录

/家庭/用户/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/*下循环每个用户,并为每个用户将数据从数据目录复制到备份目录


我将非常感谢您提供的任何帮助,提前感谢您的时间。

您可能想看看如何使用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<代码>,因为这似乎是一个备份脚本。@若泽路易斯罗德里格兹萨拉斯不要忘记接受最适合你的答案。(每个答案都有一个复选标记的大轮廓,单击该复选标记可接受它旁边的答案。)