我写了下面的命令来按文件大小的顺序列出“~”中和下面的所有文件。它似乎工作正常:
find ~ -printf "%k KB %p\n" | sort -nr
现在我想把这是一个 shell 脚本并循环遍历结果以进行更多处理。
我用一个简单的“ls”命令让它工作:
dir="/home/myusername"
cmd='ls'
for i in `$cmd`
do
echo $i
done
但这行不通:
dir="/home/myusername"
cmd='find $dir -printf "%k KB %p\n" | sort -nr'
for i in `$cmd`
do
echo $i
done
我也试过在双引号前使用转义字符,但那也不管用...
dir="/home/myusername"
cmd='find $dir -printf \"%k KB %p\n\" | sort -nr'
for i in `$cmd`
do
echo $i
done
知道我做错了什么吗?
最佳答案
在 BASH 中尝试使用 while 循环查找:
while read -r f; do
echo "$f"
done < <(find "$dir" -printf "%k KB %p\n" | sort -nr)
关于linux - 如何在我的 Linux shell 脚本中遍历此 FIND 命令的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21371242/