我正试图在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/
其中一个可能的好处是,如果您需要甚至将其用作自动同步文件的守护程序,您可以通过网络以相同的方式同步文件。