本文采用知识共享署名 4.0 国际许可协议进行许可,转载时请注明原文链接,图片在使用时请保留全部内容,可适当缩放并在引用处附上图片所在的文章链接。
功能
比较参数1,2两个路径中到文件,把参数1路径多出到文件,按完整路径,拷贝到result目录下
脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
```bash
#!/bin/bash
# 使用示例:
# source to_find_prop_files.sh ~/workspace/org_source_code/out ~/workspace/tsrc_code/out ~/workspace/to_vrz_src_code/out
# 参数1的源包含主要文件和更多的库
# 参数2的源不包含vendor路径。
# 结果将保存在当前目录的result文件夹中。
dir="result"
dir1=$1
dir2=$2
# 如果result文件夹存在,则先删除旧的result目录,并重新创建一个新的result目录。
if [ -e $dir ]; then
rm -rf $dir
fi
mkdir $dir
# 为result目录创建日志文件
touch $dir/same_path.log
touch $dir/props_files.log
function find_props() {
for element in $(ls "$1"); do
dir1_or_file="$1/$element"
if [ -d "$dir1_or_file" ]; then
dir2_or_file="$2/$element"
if [ -e "$dir2_or_file" ]; then
find_props "$dir1_or_file" "$dir2_or_file"
else
sub_path="$dir/$2"
mkdir -p "$sub_path"
cp -rf "$dir1_or_file" "$sub_path"
echo "$dir1_or_file" >>$dir/props_files.log
fi
else
file2="$2/$element"
if [ -e "$file2" ]; then
echo "$file2" >>$dir/same_path.log
else
sub_path="$dir/$2"
mkdir -p "$sub_path"
cp -rf "$dir1_or_file" "$sub_path"
echo "$dir1_or_file" >>$dir/props_files.log
fi
fi
done
}
find_props "$dir1" "$dir2"
```
|