"찾기"를 사용하여 디렉터리에서 2개의 하위 디렉터리 목록을 만듭니다.

"찾기"를 사용하여 디렉터리에서 2개의 하위 디렉터리 목록을 만듭니다.

나중에 Restic을 사용하여 백업할 디렉터리 목록을 컴파일해야 합니다. 이 목록에 포함하려면 각 하위 도메인 내에 정확히 두 개의 디렉터리가 필요합니다. 다른 모든 것은 백업되어서는 안 됩니다.

디렉토리 구조는 다음과 같습니다.

subdomain1.domain.tld
|- other_directory1
|- public_html
   |- backup1
   |- backup2
   |- no_backup1
   |- no_backup2
   |- no_backup3
subdomain2.domain.tld
|- other_directory1
|- public_html
   |- backup1
   |- backup2
   |- no_backup1
   |- no_backup2
   |- no_backup3
subdomain3.domain.tld
|- other_directory1
|- public_html
   |- backup1
   |- backup2
   |- no_backup1
   |- no_backup2
   |- no_backup3

마지막으로 내 목록은 다음과 같습니다.

/path/to/my/subdomains/subdomain1.domain.tld/public_html/backup1
/path/to/my/subdomains/subdomain1.domain.tld/public_html/backup2
/path/to/my/subdomains/subdomain2.domain.tld/public_html/backup1
/path/to/my/subdomains/subdomain2.domain.tld/public_html/backup2
/path/to/my/subdomains/subdomain3.domain.tld/public_html/backup1
/path/to/my/subdomains/subdomain3.domain.tld/public_html/backup2

지금까지 나는 이것을 가지고 있습니다 :

find /path/to/my/subdomains -maxdepth 1 -mindepth 1 -type d -printf '%f\n' | sort | xargs readlink -f > list.txt

이렇게 하면 모든 하위 도메인 목록이 제공되지만 public_html/backup1public_html/backup1디렉터리 목록은 제공되지 않습니다. 여기에서 진행하는 방법에 대한 제안이 있으십니까? 감사해요!

답변1

이름이 로 시작하는 디렉토리를 찾고 backup전체 경로를 인쇄합니다.

find /path/to/my/subdomains -type d -name 'backup*'

백업할 모든 디렉터리의 전체 이름을 명시적으로 나열하려면 다음을 수행하십시오.

find /path/to/my/subdomains -type d \( -name backup1 -o -name backup2 \)

답변2

이러한 디렉터리를 찾을 수 있는 위치를 더 구체적으로 알고 싶다면 zsh셸에서 다음을 수행할 수 있습니다.

print -rC1 /path/to/my/subdomains/*/public_html/(backup1|backup2)(N/)

인쇄하거나:

dirs=(
  /path/to/my/subdomains/*/public_html/(backup1|backup2)(N/)
)

사용하기 위해 배열에 저장합니다 (( $#dirs )) && my-backup-cmd $dirs.

그러나 요점이 backup1존재 여부에 관계없이 각 디렉토리에 대해 및 를 인쇄하는 것이라면 다음과 같이 할 수 있습니다.backup2public_html

print -rC1 /path/to/my/subdomains/*/public_html(N-/e[
  'reply=($REPLY/{backup1,backup2})'])

즉, e평가 glob 한정자를 사용하면 public_html각 디렉터리에 대해 이러한 두 경로가 반환됩니다.

또는:

() {
  print -rC1 $^argv/{backup1,backup2}
} /path/to/my/subdomains/*/public_html(N-/)

이번에는 이러한 public_html디렉터리를 인수로 사용하여 and를 추가하는 /backup1익명 함수를 사용합니다 /backup2.

관련 정보