このコマンドを詳しく説明してください。
私はこのコマンドを使用して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