ls
옵션을 사용하면 --group-directories-first
디렉터리가 맨 위에 나열되어 출력이 ls
깔끔하고 깔끔해집니다.
ls -l --group-directories-first
그러나 그것은 작동하지 않으며 symlinks
실제로 symlinks
디렉토리에서 작동합니다. 사용이 가능합니다
ls -l -L --group-directories-first
상단에 두 디렉토리가 모두 나열되지만 올바른 디렉토리와 심볼릭 링크 디렉토리를 구별하지 못하므로 다시 혼란스럽습니다.
ls
일반 디렉토리와 구별되도록 하면서 상단에 심볼릭 링크 디렉토리를 표시하는 것이 가능합니까 ?
편집하다:
을 사용하고 있습니다 bash
.
답변1
아니요, 하지만 을 사용하는 경우 zsh
다음을 수행할 수 있습니다.
mll() {
(($#)) || set -- *(N-/) *(N^-/)
(($#)) && ls -ldU -- $@
}
다음과 같이 전역 정렬 순서를 정의할 수도 있습니다.
dir1st() { [[ -d $REPLY ]] && REPLY=1-$REPLY || REPLY=2-$REPLY;}
다음과 같이 사용하세요.
ls -ldU -- *(o+dir1st)
이렇게 하면 다음과 같이 다른 옵션이나 다른 모드가 있는 ls
명령 이 아닌 다른 명령과 함께 사용할 수 있습니다 .ls
ls -ldU -- .*(o+dir1st) # to list the hidden files and dirs
또는:
ls -ldU -- ^*[[:lower:]]*(o+dir1st) # to list the all-uppercase files and dirs
을 사용해야 하는 경우 bash
이는 다음과 같습니다.
mll() (
if (($# == 0)); then
dirs=() others=()
shopt -s nullglob
for f in *; do
if [[ -d $f ]]; then
dirs+=("$f")
else
others+=("$f")
fi
done
set -- "${dirs[@]}" "${others[@]}"
fi
(($#)) && exec ls -ldU -- "$@"
)
bash
와일드카드 한정자나 와일드카드 정렬 순서에 영향을 주는 방법, 와일드카드별로 null 와일드카드를 빈 와일드카드로 변환하는 방법, 옵션이 있는 로컬 컨텍스트(하위 쉘을 시작하는 것이 아닌 위의 방법 ()
대신 {}
) AFAIK.