複数のスラッシュを1つに結合できないのはなぜですか?

複数のスラッシュを1つに結合できないのはなぜですか?

find複数の連続スラッシュを一緒にマージするなど、最も単純なパス統合/簡素化操作を実行しないでください。これは元の形式と同じです。)?

たとえば、出力は次のようになりfind .///ます。

.///
.///somefile
[…]

findGNUによるテストとbusybox

それではなぜ?私が見逃した合理的なユースケースはありますか?誰かがfind内部スクリプトの出力を収集しているからでしょうか?

find ./// -maxdepth 0 -printf '%h\n'%hところで、GNU find for(の出力が次のようでなければならないという点も興味深いです。「ファイル名の先行ディレクトリ(最後の要素と先行スラッシュを除くすべての項目)」):(.//1つだけ少ない/

答え1

NUL文字を理解するユーティリティがない場合は、この履歴動作を使用してファイルを区別できます。 find の出力には、初期パスの一部として提供されない限り、2 つの連続スラッシュは含まれません。これは、出力が次のようになることを意味します。

.//path/to/file
./name/more

file\n.findを使用して呼び出すと、現在のディレクトリのサブディレクトリではないというディレクトリがあることがわかります。name

find .// -print

関連情報