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

时间:2015-12-12 11:17:40

标签: bash ls

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

1 个答案:

答案 0 :(得分:2)

根本不管道ls的结果。如你所见,它是不可预测的。请改用find

find -maxdepth 1 -exec command {} \;

{}代表文件名。

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

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

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