「find」コマンドの「{\}{}」とはどういう意味ですか?

「find」コマンドの「{\}{}」とはどういう意味ですか?

このコマンドを詳しく説明してください。

私はこのコマンドを使用して6MBを超える大容量ファイルを見つけ、同じフォルダに5MBのチャンクに分割しました。次に、同じディレクトリにある元のファイル(6MB以上)を削除します。

find . -size +6M -exec split -d -b 5M {\} {}-part \; | find . -size +6M -exec rm -rf {} \;

コマンドの次の部分の目的がわかりません。

{\} {}

私の目標は、Virtualminドメインを毎月Amazon S3バケットにバックアップするスクリプトを開発することです。

Amazon S3 の 5 GB PUT の制限により、tar.gzドメインバックアップ () を 5 GB 未満のサイズに分割する必要があります。

ベストアンサー1

~からマンページを探す:

"{}"文字列は、コマンド引数に現れるたびに処理中の現在のファイル名に置き換えられます。

したがって、コマンドの最初の部分は6MBを超えるファイルを検索し、find見つかった各ファイルに対して(-exec)を実行します。split

たとえば、見つかったファイルがある場合に./path/to/file実行されるコマンドは次のようになります。

split -d -b 5M ./path/to/file ./path/to/file-part 

{}ファイルパスに置き換えられたプレースホルダー。それは{\}不要で、おそらくそうです{}

2番目のfindコマンド(pipe()の後のコマンド)では、各ファイルに対して|コマンドfindが呼び出されます。rm -rf

おすすめ記事