답변:
이것은 "그 대신"이라는 제목 아래 나온다. 다음 스크립트는 대략 다음과 같은 동작을 에뮬레이션합니다. ls –l 차이점은 각 디렉토리 목록의 시작 부분에 서브 디렉토리를 그룹화한다는 것입니다.
#!/bin/sh -
sort_ls_output()
{
sed -n -e '1s/^/1#/p' -e '1n' \
-e 's/^/#/' -e 's/^#d/2#d/' -e 's/^#/3#/' -e p \
| cat -n | sort -n -k2 -k1 | sed 's/[^#]*#//'
}
if [ $# = 0 ]
then
ls -l | sort_ls_output
else
for arg
do
echo
if [ -d "$arg" ]
then
echo "${arg}:"
ls -l "$arg" | sort_ls_output
else
ls -l "$arg"
fi
done
fi
그것은 거친 상처입니다.
명령 줄에서 개별 파일 (not-directories)을 다음과 같은 방식으로 처리하지 않습니다. ls –l 그리고 옵션을 처리하지 않습니다 (예 : –a ).