【问题标题】:ubuntu script to cp from one directory to anotherubuntu 脚本从一个目录 cp 到另一个目录
【发布时间】:2011-08-12 15:45:45
【问题描述】:

我正在编写一个脚本来执行以下任务 我有这样的目录。

/home/users/ac

/home/users/nf

/home/users/tu

/home/users/ms

。 . . 否

每个目录里面有2个文件夹,一个是Data,另一个是es Backup,像这样。 /home/users/ac/数据 /home/users/ac/备份

我目前的脚本是这样的。 寻找 。 -name 数据 -type d -maxdepth 2 -mindepth 2

但我需要的是一个脚本,它将位于 Data “动态地位于 /home/user* 下的所有目录中”的所有内容复制到每个用户的备份目录中。比如这样的。

cp /home/users/ac/Data/* /home/users/ac/Backup

我需要一些自动化的东西来循环 /home/users/* 下的每个用户,并将数据从数据目录复制到每个用户的备份目录。

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

【问题讨论】:

    标签: shell ubuntu


    【解决方案1】:

    for 循环和cp -R 的简单应用将解决您的问题

    cd /home/users
    for i in ./*; do cp -Ra "$i"/Data/* "$i"/Backup/; done
    

    【讨论】:

    • 到目前为止,您所拥有的一切都可在所有 POSIX shell 中使用,因此在许多其他 shell 中无需修改即可工作*。当然,同样的错误也会出现在所有其他 POSIX shell 中。要修复它们,请引用$i 的每一个出现,因此它们变为"$i",并使用./* 而不是*' just to be safe (even though it may be unnecessary if all user directories are simply 2 ASCII lower case letters it is always good practice to be safe). Otherwise a good answer (+1). Also, perhaps consider the --preserve=all` 或-a 选项和cp,因为这似乎是一个备份脚本。
    • @Jose Luis Rodriguez Salas 不要忘记接受最适合您的答案。 (每个答案都有一个勾号的大轮廓,单击它以接受它旁边的答案。)
    【解决方案2】:

    您可能想看看使用 rsync 来执行此操作。它很容易编写脚本,您可以随时使用 cron 运行您的脚本。很久以前我曾经使用过一个名为 mirrordir 的实用程序,但它不再在 Ubuntu 存储库中了。

    快速搜索本教程:http://www.abbeyworkshop.com/howto/unix/nix_rsync/index.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-21
      • 1970-01-01
      • 2014-06-18
      • 2015-07-19
      • 2015-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多