Find

GNU find 的 -print0 的 POSIX 替代方案

  • February 6, 2021

GNUfind可以-print0選擇以空字元終止文件名。但是,此選項在POSIXfind中不可用。

在 GNU 手冊頁中find,在-print標誌下,它說:

如果您將 的輸出通過管道find傳輸到另一個程序中,並且您正在搜尋的文件很可能包含換行符,那麼您應該認真考慮使用該-print0選項而不是-print.

這向我表明-print0GNU 引入了專門處理帶有換行符的文件路徑。

在 POSIX 中,GNU 的-print0選項有什麼替代方法,僅使用 POSIXfind或管道到第二個 POSIX 命令?

find ... -exec sh -c 'printf "%s\0" "$@"' - {} +

簡單find ... -exec printf '%s\0' {} +也可以工作,儘管這顯然會使用獨立的printf執行檔而不是 shell 的內置。我不確定這是否會產生其他影響。

引用自:https://unix.stackexchange.com/questions/632877