我可以用文件名中的新行做什么?

What can I do with new lines in file name?

如果文件中有换行符,而我使用 find 或 ls,它显示为“?”文件名中的符号。但是当我使用 |为了用它做更多的事情,它分裂了字符串并弄乱了一切。我该如何处理?

根本不要通过管道传输 ls 的结果。如您所见,这是不可预测的。使用 find 代替:

find -maxdepth 1 -exec command {} \;

{}表示文件名。

或者,您也可以使用 glob 表达式。 glob 表达式的结果不受单词拆分的影响,这意味着如果它们包含换行符或空格是安全的:

for file in ./* ; do
    command "$file"
done

然后可以在另一个管道中使用该命令的结果。