私は持っています
dir_1=/foo
dir_2=/foo/bar
file_unique=/foo/bar/tmp/
2つのディレクトリを比較し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
必要に応じて追加のエラーチェック、スペースサポートなどを追加します。