结果ls却没有直接的参数可以实现
于是写了一个脚本
支持和 ls 一样的参数
代码: 全选
#!/bin/bash
# goodluck_1982@163.com
# 2008-11-06 23:08:02
# 将参数分离成两部分,一部分是文件,另一部分是选项
a=("$@")
opt="" #选项部分
fs=() #文件部分,用数组存储
i=0
while [ $i -lt $# ]
do
t=${a[i]}
if [ "${t:0:1}" = "-" ] ; then
opt="${opt} $t"
else
ss=${#fs[*]}
fs[ss]=$t
fi
let i=i+1
done
tmp=.__lsdir_$(date +%s)__tmp
if [ ${#fs[*]} -eq 0 ] ; then
ls -1F | grep '\/$' >$tmp
else
ls -1Fd "${fs[@]}" | grep '\/$' >$tmp
fi
sed -i "s/\/$//" $tmp
sed -i "s/'/'\\\''/g" $tmp #处理文件名中含有单引号的特殊情况,每一个单引号都要处理
sed -i "s/.*/'&'/" $tmp #给文件名两边加上单引号
files=$(tr -t '\n' ' ' < $tmp)
eval ls -d --color=tty $opt $files
\rm $tmp