我有
dir_1=/foo
dir_2=/foo/bar
file_unique=/foo/bar/tmp/
比较两个目录dir_1
和dir_2
。我想查找与 中的模式匹配dir_1
且dir_2
名为*.PATTERN
.
PATTERN
是任何单词的占位符。dir_1
文件示例是lockinfo.1234.mikey
或lockinfo.1235.mikey
.dir_2
文件示例是1234.mickey.AB
和1235.mikey.AB
。
如果该模式存在dir_1
但不存在dir_2
,则将完整文件复制到该目录file_unique
答案1
像这样的东西吗?这只是为了让您开始,它不是很强大......
dir_1=<some directory, e.g., /foo>
dir_2=<some directory, e.g., /foo/bar>
file_unique=<some directory, e.g., /foo/bar/tmp/>
for file in ${dir_1}/lockinfo.*.PATTERN; do
# first, are there any matching files? If not, $file will
# be set literally to ".../lockinfo.*.PATTERN"
[[ ! -f "$file"]] && break
# OK, there is at least one file
basename=$(basename ${file})
# if there is no such file in dir_2, cp the original
# file, preserving its permissions and ownership, etc.
[[ ! -f ${dir_2}/${basename} ]] && cp -p $file $file_unique
done
根据需要添加额外的错误检查、空格支持等。