脚本shell,用于浏览目录并在具有指定副本的其他目录中使用相同名称搜索子目录

时间:2016-02-19 03:37:47

标签: shell

我有两个目录:Dir1和Dir2。 Dir1包含多个子目录,每个目录包含多个具有不同名称的文件。 Dir2包含一些与Dir1'子目录同名的子目录,每个目录包含多个文件。 我需要一个浏览Dir1的脚本shell,如果Dir2中存在同名的子目录,则搜索其每个子目录,如果结果为true,则复制除正确子目录中具有指定扩展名的指定文件之外的所有文件-dir2中的目录。 希望明确,谢谢,

2 个答案:

答案 0 :(得分:0)

方向1 = “/路径/到/方向1 /” DIR2 = “/路径/到/ DIR2 /”

cd $ Dir2

表示$(找到。-type d)中的DirFromDir2

cd $ Dir1

找到$ DirFromDir2 -exec cp {} $ Dir2 \; 2 - ;的/ dev / null的

答案 1 :(得分:0)

  

...它复制除一个指定文件以外的所有文件......

如果您使用bash GLOBIGNORE shell变量可用于限制文件名集man bash路径名扩展)。 指定文件pluto.txt的示例:

#!/bin/bash
Dir1="old" Dir2="new"
GLOBIGNORE=*/pluto.txt
for DirFromDir2 in `cd $Dir2; echo */`
do  [ -d $Dir1/$DirFromDir2 ] && cp $Dir1/$DirFromDir2* $Dir2
done