「検索」を使用して、ディレクトリに2つのサブディレクトリのリストを作成します。

「検索」を使用して、ディレクトリに2つのサブディレクトリのリストを作成します。

後でResticを使用してバックアップするディレクトリのリストをコンパイルする必要があります。このリストに含めるには、各サブドメイン内に正確に2つのディレクトリが必要です。他のすべてはバックアップしてはいけません。

ディレクトリ構造は次のとおりです。

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各ディレクトリに対してこれら2つのパスが返されます。

または:

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

今回は、これらのpublic_htmlディレクトリを引数として使用してandを追加する/backup1匿名関数を使用します/backup2

関連情報