我需要对结果进行一些操作,为了简单起见,假设我需要 chown 它们。
尝试了以下方法,但不起作用:
# this is what I usually use, not work
find . -name '*'$'\n''*' -type d | while read a; do chown www.www "$a"; done
# this is more standard way, still not work
find . -name '*'$'\n''*' -type d | xargs chown www.www '{}'
答案1
为find
您构建命令行,而无需尝试重新解析文件列表:
LC_ALL=C find . -name $'*\n*' -type d -exec chown www:www {} +
至少在 GNU 系统上,您还需要LC_ALL=C
确保它也能找到名称在用户区域设置中不是有效文本的文件。