仅当目标目录中存在文件夹时,才从源目录同步/复制文件夹



我正试图在ubuntu中编写一个bash脚本来复制一些文件。。我正在做一个小型的Android项目,每周翻译应用程序。我对bash脚本还很陌生,所以请耐心等待;)

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

假设我的源目录中有folder1、folder2、folder3,但目标目录中只有folder1和folder2。然后我只需要将源目录中的folder1或folder2复制到目标目录。

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

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

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

编辑:

我最终做了这个:

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

不知道这是否是最好的方式,但似乎能胜任这项工作;)

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

--existing              skip creating new files on receiver

因此,以下内容应该起作用:

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

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

相关内容

  • 没有找到相关文章

最新更新