後で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/backup1
各public_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
存在するかどうかにかかわらず、ディレクトリごとにおよび印刷することであれば、次のことができます。backup2
public_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
。