同じメッセージファイルを引き続きインポートするには、検索を使用します。

同じメッセージファイルを引き続きインポートするには、検索を使用します。

私がこれを入力するたびに:

find . -type f -name 'diag*' -mtime +30 -exec mv {} temp_diag \;

SunOSは常にこのメッセージを受け取ります。

mv: ./temp_diag/diagnostic.log.68.gz and temp_diag/diagnostic.log.68.gz are identical
mv: ./temp_diag/diagnostic.log.37.gz and temp_diag/diagnostic.log.37.gz are identical
mv: ./temp_diag/diagnostic.log.18.gz and temp_diag/diagnostic.log.18.gz are identical

私が使っているコマンドはうまくいきますが、メッセージの意味にのみ興味があります。

答え1

このコマンドを使用すると、現在のパスを下に移動します。だからあなたは次のようなものを持っています:

dir1
dir1/temp_diag
dir1/temp_diag/file1

内部でコマンドを実行しdir1、dir1/temp_diagを見て実行します。

mv ./temp_diag/file1 temp_diag/file1

本質的には、コマンドにファイルを独自に移動するように指示することです。

修正する: ファイルがあるサブディレクトリがない場合は、maxlength 1を検索するオプションを追加できます。だから:

find . -type f -name 'diag*' -maxdepth 1 -mtime +30 -exec mv {} temp_diag \;

または、サブディレクトリがあるが temp_diag を含めたくない場合は、次の手順を実行します。

find . -path ./temp_diag -prune -o -print -type f -name 'diag*' -mtime +30 -exec mv {} temp_diag\;

答え2

あなたのfindコマンドは、temp_diagディレクトリに移動してファイルを見つけ、ファイルmvを自分でコピーしようとします。

関連情報