Ich bin verwirrt von diesem Experiment (in Bash):
$ mkdir 'foo\n'
$ find . -print0 | od -c
0000000 . \0 . / f o o \ n \0
0000012
Wie Sie sehen können, begrenzt "find" die Ausgabe korrekt mit Nullzeichen, aber es wird die neue Zeile im Verzeichnisnamen als "foo \ n" mit einem Backslash "n" umgangen. Warum macht es das? Ich sagte es "-print0", das besagt "Dies ermöglicht, dass Dateinamen, die Zeilenumbrüche enthalten ... von Programmen, die die Suchausgabe verarbeiten, korrekt interpretiert werden." Das Escapezeichen sollte nicht erforderlich sein, da "\ 0" das Trennzeichen ist, nicht "\ n".
ls
hättest, hättest du das gesehen.
ls
genau das druckt, was ich an mkdir übergeben habe, 'foo\n'
...
foo\n
Namen "Backslash" erstellt.