#!/bin/sh
file_list=`find . -type f`
IFS=$(echo) #this enables for loop to break on newline
for file_ in $file_list; do
file $file_
done
这个 shell 脚本会令人惊讶地报告(文件名太长)
。我猜脚本给 file
提供了 3 次 $file_list
!!!
但是,如果我使用简单的 echo
更改 file
命令,那么脚本将按预期逐行打印当前目录中的所有文件。
最佳答案
迭代 find
的结果不是一个好主意。请改用它的 exec
选项:
find -type f -exec file {} \;
关于linux - 为什么 for 循环中的 file 命令表现得如此荒谬,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33548510/