1

我正在尝试在 ubuntu 中编写一个 bash 脚本来复制一些文件。我正在开发一个小型 Android 项目,我每周都在翻译应用程序。我对 bash 脚本非常陌生,所以请多多包涵;)

我希望我的脚本检查目标目录并查看我的源目录是否包含相同的文件夹。如果是这样,它应该将我的源文件夹复制(并在需要时覆盖)到目标目录,并保留结构。但还要添加我在这些源文件夹中可能拥有的任何额外文件和文件夹。

假设我的源目录中有文件夹 1、文件夹 2、文件夹 3,但目标目录中只有文件夹 1 和文件夹 2。然后我只需要从源目录复制到目标目录的文件夹 1 和文件夹 2。

目标目录的内容经常变化,这就是为什么我需要在复制文件夹/文件之前进行检查。

顺便说一句,源目录和目标目录中的文件夹都被命名为:folder1.apk - 它有一个扩展名,所以它看起来像一个文件..

希望我提供了足够的信息;)

编辑:

我最终这样做了:

    for dir in `find * -maxdepth 0 -type d`; do
    cp -r -f /source/$dir /destination
    done

不知道这是否是最好的方法,但似乎可以完成这项工作;)

4

1 回答 1

1

您可能会看一下rsync工具,它有很多选项且易于使用(无需使用自己的脚本)。例如,对您的情况有用的选项之一:

--existing              skip creating new files on receiver

所以,以下应该做的工作:

rsync -vur --existing ~/project/source /mnt/target/

如果您需要甚至将其用作守护程序来自动同步文件,则可以通过网络以相同的方式同步文件的可能好处之一。

于 2012-11-23T21:10:25.047 回答