null文字を含むようにstat出力形式をどのように指定しますか?

null文字を含むようにstat出力形式をどのように指定しますか?

find -print0のようにヌル文字(NUL、\ 0、...)を使用してファイルパスを分割したいと思います。

私はbashを使用しており、成功せず、次のことを試しました。

find $1 -print0 > dircontent
cat dircontent | xargs -0 stat --format="%X %Y %Z %f %u %g %i %h \0%n\0%s" > dirstats

「I」のように見えますが、ヌル文字の代わりにリテラル「\」と「0」があります。

答え1

--formatパーセントエスケープのみが解析され、最後に改行文字が追加されます。--printfバックスラッシュエスケープも解析され、末尾の改行は追加されません。

<dircontent xargs -0 stat --printf="%X %Y %Z %f %u %g %i %h \0%n\0%s\0" > dirstats

答え2

私はそれを//区切り記号として使用し、必要なものsed -in 's/\/\//\x0/g' dirstatsを取得します。私はまだハッキングの少ないソリューションを好む。

関連情報