대신 coreutils
Homebrew 및 별명 ll
으로 설치하십시오 gls -Flh --group-directories-first
.
brew install coreutils
GNU Coreutils 가 설치되지 않은 경우 설치합니다.
- 사용
alias ll='gls -Flh --group-directories-first'
에서 .bashrc
. 두 운영 체제에서
동일한 .bashrc
파일 을 사용하려면 아래를 참조하십시오.
우분투에서는 ls
GNU Coreutils가 제공 하며 우분투에는 항상 있습니다. 이것이 우분투에서 ls
지원 --group-directories-first
되는 이유 입니다. 아마 여러분은 ls
이전에 macOS 에서 GNU Coreutils 버전을 사용 했었을 것 입니다. Homebrew는 설치 gls
되었지만 ls
여러 가지 방법 으로 사용할 수 있습니다 .
ls
Bash 내장이 아닌 외부 명령입니다. 다른 버전이나 Bash 빌드를 사용해도 영향을 미치지 않습니다. Homebrew를 사용하여 Bash를 업그레이드했을 때 무슨 일이 있었는지 잘 모르겠습니다. Bash보다 더 많이 업그레이드되었을 수도 있습니다. ls
대체 된 전역 구성 파일에 쉘 기능 또는 별명이 정의되어있을 수 있습니다. 어쩌면 당신은ls
지적gls
하고 덮어 쓴상징적 인 링크가 있었을 것입니다. 어쩌면 당신은 여전히 그런 것을 가지고 있지만 당신의$PATH
변경되었습니다. 무슨 일이 있었 든 GNU Coreutils ls
는을 지원하며--group-directories-first
( bmike가 제안한 것처럼) 전환하면문제가 해결됩니다.
어떤 이유로 .bashrc
두 시스템에서 정확히 동일한 파일 을 사용하려는 경우 몇 가지 가능한 방법이 있습니다. gls
Ubuntu 시스템에서 심볼릭 링크, 래퍼 스크립트, 쉘 기능 또는 Bash 별칭 확장이 비 재귀 적이므로 쉘 별칭을 만들 수 있습니다. 하지만 대신 제안 OS를 사용하고 검사 에를 .bashrc
. ll
각 시스템에 서로 다른 별명이 정의되어 있지만 이 방법은 자체 문서화라는 이점이 있습니다. 당신의 .bashrc
의지는 1 년 또는 한 달 안에 당신에게 의미가 있습니다.
if [ "$OSTYPE" == linux-gnu ]; then # Is this the Ubuntu system?
alias ll='ls -Flh --group-directories-first'
else
alias ll='gls -Flh --group-directories-first'
fi
또는 별칭을 ls
사용하지 않더라도 일반적으로 Coreutils 실행을 선호하는 경우 다음과 같이 별칭을 ll
만들 수 있습니다 .ls
gls
if [ "$OSTYPE" != linux-gnu ]; then # Is this the macOS system?
alias ls=gls
fi
alias ll='ls -Flh --group-directories-first'
( 이 스크립트의 이전 버전에서 실수 를 발견 한 것에 대해 soroushjp 에 감사드립니다 .)
ls
또는 macOS 를 사용하고ls
있습니까? 당신은 다른 것을 시도 했습니까?