나는 가지고있다
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
필요에 따라 추가 오류 검사, 공백 지원 등을 추가합니다.