一尘不染

如何对指定路径下的所有文件执行for-each循环?

linux

以下命令尝试枚举*.txt当前目录中的所有文件,并一一处理它们:

for line in "find . -iname '*.txt'"; do 
     echo $line
     ls -l $line; 
done

为什么会出现以下错误?

ls: invalid option -- 'e'
Try `ls --help' for more information.

阅读 327

收藏
2020-06-02

共1个答案

一尘不染

这是一种遍历文件的更好方法,因为它可以处理文件名中的空格和换行符:

find . -type f -iname "*.txt" -print0 | while IFS= read -r -d $'\0' line; do
    echo "$line"
    ls -l "$line"    
done
2020-06-02