Find
GNU find 的 -print0 的 POSIX 替代方案
GNU
find
可以-print0
選擇以空字元終止文件名。但是,此選項在POSIXfind
中不可用。在 GNU 手冊頁中
find
,在如果您將 的輸出通過管道
find
傳輸到另一個程序中,並且您正在搜尋的文件很可能包含換行符,那麼您應該認真考慮使用該-print0
選項而不是這向我表明
-print0
GNU 引入了專門處理帶有換行符的文件路徑。在 POSIX 中,GNU 的
-print0
選項有什麼替代方法,僅使用 POSIXfind
或管道到第二個 POSIX 命令?
find ... -exec sh -c 'printf "%s\0" "$@"' - {} +
簡單
find ... -exec printf '%s\0' {} +
也可以工作,儘管這顯然會使用獨立的printf
執行檔而不是 shell 的內置。我不確定這是否會產生其他影響。