如何查找和操作文件名中包含换行符的文件?

如何查找和操作文件名中包含换行符的文件?

跟进如何查找文件名中包含换行符的文件?,

我需要对结果进行一些操作,为了简单起见,假设我需要 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确保它也能找到名称在用户区域设置中不是有效文本的文件。

相关内容