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