[解決済み] rsyncです。--include-from vs. --exclude-from 実際の違いは何ですか?
質問事項
ドキュメントでは、インクルードするパターンと除外するパターンのどちらかのリストを含むファイルであると言及されています。 しかし、これはインクルードについては、パターンにマッチするものを除き、すべてが除外とみなされることを意味します。 例えば、以下のようなインクルードファイルがあるとします。
/opt/**.cfg
という名前のディレクトリの下のどこかに存在する *.cfg という名前のファイルのみを含める必要があります。
opt
ツリー内の任意の場所で つまり、以下のようにマッチします。
/opt/etc/myfile.cfg
/some/dir/opt/myfile.cfg
/notopt/opt/some/other/dir/myfile.cfg
従って、それ以外のものは暗黙のうちに除外されるものと思っています。 しかし、項目別の出力ではこのように表示されるので、そうではないようです。
*deleting etc/rc.d/init.d/somescript
で、どうするかというと
--include-from
と
--exclude-from
? の単なるエイリアスなのでしょうか?
--filter-from
?
解決方法は?
rsync
はそのように動作しません。ファイル名パターンがincludeまたはexcludeパターンのいずれにもマッチしないファイルは、includeされたものとみなされます。つまり、includeパターンはexcludeパターンを上書きする方法だと考えてください。
から ドキュメント (強調)。
Rsync は、コマンドラインで指定された include/exclude オプションの順序付きリストを構築します。Rsync は、各ファイルとディレクトリ名を各 exclude/include パターンに照らして順番にチェックします。最初に一致したパターンが処理されます。exclude パターンの場合、そのファイルはスキップされます。インクルードパターンの場合、そのファイル名はスキップされません。 一致するinclude/excludeパターンが見つからない場合、そのファイル名はスキップされません。
つまり、特定のファイルだけをインクルードしたい場合は、まず インクルード その特定のファイルを 除外する 他のすべてのファイル
--include="*/" --include="*.cfg" --exclude="*"
ここで注意すべきことが2つあります。
-
その
include
なぜなら、最初にマッチしたパターンが考慮されるからです。もしファイル名が最初に除外パターンにマッチすれば、それは除外されます。 -
のように、すべてのサブディレクトリを個別にインクルードする必要があります。
--include="/opt" --include="/opt/dir1"
などですべてのサブディレクトリを含めるか、--include="*/"ですべてのディレクトリ(ファイルではない)を含めるかです。私は簡潔さのために2番目のオプションを選択しました。
癖があり、あまり直感的ではありません。そのため、以下をお読みください。
ドキュメント
をよく読んで(リンク先の "EXCLUDE PATTERNS" のセクション)、その上で
--dry-run
または
-n
オプションを使用して、あなたが考えるとおりに動作することを確認します。
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] シェルで、「2>&1」はどういう意味ですか?
-
[解決済み] time(1) の出力における 'real', 'user' および 'sys' はどのような意味ですか?
-
[解決済み] 好ましいBashのシェバングとは?
-
[解決済み] コマンドラインから .bash_profile を再読み込みする方法は?
-
[解決済み] POSIX」の意味を教えてください。
-
[解決済み] grep -R からディレクトリを除外するにはどうすればよいですか?
-
[解決済み] シンボリックリンクとハードリンクの違いは何ですか?
-
[解決済み] 検索」からすべての「permission denied」メッセージを除外するにはどうすればよいですか?
-
[解決済み] grep --exclude/--include構文を使って特定のファイルをgrepしないようにする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】bashでjsonファイルを解析するために、jqの出力にあるダブルクオートを削除する方法は?
-
[解決済み】ZIPエラー - 何もできない
-
[解決済み】SEDをワイルドカードで使用する場合
-
[解決済み] systemd サービス 203/EXEC の失敗 (そのようなファイルやディレクトリがない) を修正する。
-
npm err インストールエラーの解決策
-
[解決済み] シェルスクリプトで整数式が期待されるエラー
-
[解決済み] condaのアップデート後、ターミナルのプロンプトから(base)を削除する方法
-
[解決済み] bash file returns unexpected token `$'dottpr''
-
[解決済み] bashでのDiffコマンド
-
[解決済み] Bash - "fi ;;" の使い方は?