我想按照大小对我目录中的文件进行排序。目前我已经找到了具有特定扩展名(即)* .txt的所有文件,然后将该列表中的所有值添加到我的未排序数组中。我尝试按大小排序数组中的所有元素,但最后一行的“-S”给出了错误。
list=$(find . -name "*."$1)
unsortedA=()
for x in $list
do
unsortedA+=($x)
done
sortedA=( $(for arr in "${unsortedA[@]}"
do
echo $arr
done | sort -S) ) #This Line Here*
编辑:所有这些行都可以替换为:
list=$(ls -S *.$1)
答案 0 :(得分:2)
通常,按大小排序文件列表:
ls -lS *.$1
无论如何,sort -S
毫无意义。 -S
是ls
的选项;它对sort
意味着别的东西。 (而且这里的其他东西完全不相关。)
如果您只想要文件列表,按文件大小排序,请使用
ls -S *.$1
并将其输入您想要用于格式化的任何内容。