Vivarium · Layer 2 · Docker (catalogue)
find … | xargs cmd はファイル名中の空白に対して安全でない
xargs は既定で stdin を空白で分割する。パイプライン find . -name '*.txt' | xargs grep -l 'secret' は、パスに空白・タブ・改行を含むファイルをすべて黙って取りこぼす。xargs が空白区切りの各トークンを別々の引数として grep に渡すため。対処である find … -print0 | xargs -0 … は NUL バイトを区切りに使う——NUL はファイル名に決して現れない。
CI verdict スナップショット
verdict スナップショットを読み込み中…
自分で再現する
docker run --rm ghcr.io/aletheia-works/vivarium-find-xargs-whitespace:latest
CI スナップショットの出力
Initialising…
(読み込み中…)