-printfの結果を引用せずに「find」する方法はありますか?

-printfの結果を引用せずに「find」する方法はありますか?

nul文字で区切られた先頭ディレクトリを印刷するためにfindwithコマンドを使用したいと思います。-printf '%h\0'私は\ 0を使用しているので、findのマンページの「UNUSUAL FILENAMES」セクションで説明されているように、findが結果を引用する必要はありません。

そのオプションを使用するときに「私がやっていることを本当に知っています」と言って引用しない方法はありますか-printf

答え1

findおそらくパイプの出力をキャプチャしたいと思います。この場合、引用は有効になりません(ターミナルへの出力にのみ使用されます)。

例:

mkdir $'two line\ndirectory'
( cd two* && touch file )

次に、

find two* -printf '%h\n'

.
two line?directory

しかし、

find two* -printf '%h\n' | cat

.
two line
directory

man findこれは(GNU)セクションで説明されています。珍しいファイル名:

-printf-fprintf出力が端末に送信されない場合は、そのまま印刷されます。

そうでない場合(つまり、端末へ)

[...]ディレクティブ%f%hおよび%lが参照され%pます%P

文書に記載されている内容に関係なく、「参照」ファイルまたはディレクトリ名を表示できないことに注意してください。?上記の例を見ると、印刷されていない文字だけが変わることがわかります。

関連情報