
次のコマンドを使用して、ホーム フォルダーを外部ドライブにバックアップしようとしています。
rsync -acu --delete --exclude-from='/home/chh1/rsync_exclude.txt' /home/ /media/chh1/f86f92f7-bcb4-4b8e-8a64-8a210606d422/home_backup/
--exclude-from= ファイル
/home/chh1/rsync_exclude.txt
次のエントリが含まれます:
.cache
crewdb.bak.sql
私は本当に .cache を除外したいのですが、それに含まれる .dconf も除外したいのです。なぜなら、ルート権限を必要とするファイルと、/home/chh1/.cache に含まれる不要な .cache データを除外したいからです。
走るとき
find ~ -name ".cache"
次のような出力が得られます。
/home/chh1/snap/pdfmixtool/common/.cache
/home/chh1/snap/gnome-system-monitor/common/.cache
/home/chh1/snap/okular/63/.cache
/home/chh1/snap/freemind/common/.cache
/home/chh1/.cache
find: ‘/home/chh1/.cache/dconf’: Permission denied
本当に除外したい
/home/chh1/.cache
これにより、dconf と一般的な .cache ジャンクも処理されます。ただし、find コマンドの実行時に見つかった他の .cache ディレクトリを除外したくありません。
--exclude-from= は除外ファイル内のものとのみパターンを照合するので、パターンではなくパスを指定し、できれば除外ファイル内で指定するにはどうすればよいでしょうか? 方法はありますか?
ご協力ありがとうございます、本当に感謝しています!
答え1
除外リストには、開始ディレクトリの下に一致する絶対名も含めることができます/home/
。次の行を使用します。
/chh1/.cache
.cache
を除外する代わりに/home/
/chh1/.cache
、すなわち/home/chh1/.cache