私が話しているのは、マンページのこの部分だと思います。これはかろうじて私には判読できません。
-delete ...セキュリティ上の理由から、 パス名に「/」文字が含まれるファイル名を「」から削除しようとはしません。
具体的には、私がやろうとしているのは$ find . -name '.svn' -type d -delete
です。代わりに-exec
を使用できることはわかっていますが、find
は、ディレクトリの奥深く(パス名に多くの/
文字が含まれていることは明らかです)を含む他の名前でも問題なく機能するようです。
おそらく、代わりにドットファイルを無視していて、ドキュメントが間違っていますか?
「セキュリティ上の理由」は、find
がファイルを列挙してから削除するまでの間に、攻撃者がファイルのパスの1つのコンポーネントを変更して、予期しないディレクトリへのシンボリックリンクになる可能性があるためです。 、結果として、予期しないディレクトリから同じ名前のファイルが削除されます。たとえば、攻撃者がfoo
を/etc/passwd
を指すシンボリックリンクに変更できる場合、/tmp/foo/passwd
ではなく/etc
を削除してしまう可能性があります。
GNU検索ドキュメント のセクション9.1.5( "-execのより安全なバージョン")では、この問題について詳しく説明しています。