たとえば最近変更したファイルを find で見付けだして vi したい場合は、vi $(find ... -mtime ...)
としますが、ファイル名に空白が入っていた場合に問題が発生します。IFS を細工すれば大体の場合に対応できますが、ファイル名に改行が入っていた場合にやはり問題が発生します。つまり本質的な対策は find -print0 | xargs -0 vi
とすることなのです。しかし vi は標準入力が tty であることを期待しているのでこの方法もそのままでは使えません。そこで、以下のラッパー tvi
を作って xargs -0 tvi
します。bash:tvi
command -p vi < /dev/tty "$@"
↧
find -print0 | xargs -0 vi する
↧