
안녕하세요, 다음과 같은 디렉터리가 있다고 가정해 보겠습니다.
/
my_work
/dir1
keepdir1.ddd
keepdir2.ddd
file.cfg
(lots of files and directories I don't want)
/dir2
(same layout as dir 1)
그래서 "my_work" 디렉터리와 "dir1", "dir2" 등의 하위 디렉터리를 모두 복사하고 싶습니다. 그러나 각 항목에는 특정 파일과 특정 디렉터리만 보관하고 싶습니다. 내가 보관하는 디렉토리에는 모든 것을 재귀적으로 포함하고 싶습니다.
지금까지 시도한 내용은 다음과 같습니다. 그러나 아무 것도 복사되지 않는 것 같습니다.
rsync -rl --include-from=~/rsync_include /my_work ~/backup
rsync_include의 내용은 다음과 같습니다.
+ *file.cfg
+ *keepdir*/*
- *
답변1
중요한 정보를 제공하는 것을 잊어버리지 않았다면 다음 스크립트가 작동합니다.
#!/usr/bin/env bash
for DIR in my_work/* ; do
mkdir -pv dest/"$DIR"
cp -av "$DIR"/*.cfg "$DIR"/keepdir* dest/"$DIR"
done
메시지를 생성하는 적용할 수 없는 와일드카드가 포함된 샘플 출력:
dest
dest/my_work
dest/my_work/dir1
my_work/dir1/file.cfg -> dest/my_work/dir1/file.cfg
my_work/dir1/keepdir1.ddd -> dest/my_work/dir1/keepdir1.ddd
my_work/dir1/keepdir2.ddd -> dest/my_work/dir1/keepdir2.ddd
dest/my_work/dir2
my_work/dir2/file.cfg -> dest/my_work/dir2/file.cfg
cp: my_work/dir2/keepdir*: No such file or directory
dest/my_work/dir3
cp: my_work/dir3/*.cfg: No such file or directory
cp: my_work/dir3/keepdir*: No such file or directory