[unix] ls 별칭에 숨겨진 파일 (도트 파일) 만 표시

나는 명령을 사용하고 있습니다

ls -a | grep '^\.'

숨겨진 파일 만 표시합니다. 나는 라인을 추가

alias hidden='ls -a | grep '^\.'' # show only hidden files

.bash_aliases파일

그러나 이것은 작동하지 않습니다. 아마도 '캐릭터 의 문제 일 것입니다 .

올바른 별칭을 작성하도록 도와 주실 수 있습니까?



답변

내부 따옴표 쌍을 큰 따옴표로 만듭니다.

alias hidden='ls -a | grep "^\."'

또는 따옴표의 큰 따옴표를 큰 따옴표로 만드십시오.

alias hidden="ls -a | grep '^\.'"

또는 모든 따옴표를 큰 따옴표로 만들고 내부 쌍을 이스케이프하십시오.

alias hidden="ls -a | grep \"^\.\""

또는 함수로 만들어서 호출 할 때 몇 가지 인수를 전달할 수 있습니다.

hidden() { ls -a "$@" | grep '^\.'; }


답변

쉘에 도트 파일을 나열하고 ls디렉토리를 보지 말라고 지시하십시오.

ls -d .*


답변

ls -Ad .* #This will list all the hidden files & directories while retaining the color & formatting

또는

동일한 별칭을 만들려면

alias lh='ls -Ad .*'

또는

grep 명령과 파이프 연산자를 통해 동일한 작업을 수행 할 수 있습니다. 그러나 색상과 서식이 느슨해집니다.

ls -a|grep "^\."

또는

별칭을 통해 :

alias lh='ls -a|grep "^\."'


답변

큰 따옴표를 사용할 수 있습니다 :

alias hidden="ls -a | grep '^\.'"

또는 더 작은 따옴표로 묶인 문자열을 연결

alias hidden='ls -a | grep '\''^\.'\'

또는 모든 내부 따옴표에서 제거

alias hidden='ls -a | grep ^\\.'


답변

기록을 위해 이것은 ls -a2 개 (때로는 더 많은 열)를 인쇄하기 때문에 나와 함께 작동하지 않는 것 같습니다 . -1모든 파일이 자체 줄에 있는지 확인 하는 옵션을 사용하는 것이 좋습니다 . 이 같은:

alias hidden='ls -a1 | grep "^\."'


답변

약간 더 복잡하게 만들지 만 구문 분석을ls 피하십시오 .

llsh () { find "${@:-.}/" -maxdepth 1 -type f -name ".*" -ls; }

lsh () { find "${@:-.}/" -maxdepth 1 -type f -name ".*" -print; }

두 쉘 함수는 find현재 디렉토리 또는 명령 행에 제공된 디렉토리에 모든 숨겨진 일반 파일 목록을 생성하는 데 사용 됩니다.

llsh함수는와 같은 단일 열 목록 ls -llsh생성하는 동안 “긴 목록” 을 생성합니다 ls -1.


답변

find . -type f -name ".*"

또는

find . -type f -name ".*" | while read file; do basename $file; done