我正在寻找一种方法来移动 Linux 服务器上目标目录中尚未存在的文件夹。
例子:
目标目录
folder1
folder2
folder3
folder4
源码目录
folder1
folder2
folder5
folder6
folder7
我不想从源目录folder1
中folder2
覆盖目标目录中的文件夹。源目录中的内容可能folder1
与folder2
目标目录中的内容不同,但我不希望复制这些更改。
这是在 CentOS 7 服务器上,并且接受该工作所需的任何工具。
不移动的文件夹列表是动态的,因此我不想静态设置它。
答案1
您可以通过在源中的每个目录中设置一个循环来完成此操作,如果目标中没有该名称的目录,则会移动它:bourne snippit:
for dir in `cd "$sourcedir" ; ls -1F | grep '/'`
do
if [ ! -d "${targetdir}/${dir}" ]
then
mv "$dir" "${targetdir}/"
fi
done
请注意,如果目标中的文件与源中的目录同名,这将破坏或覆盖文件。如果你希望它健壮,你应该添加一些额外的检查。