답변:
쉘에 도트 파일을 나열하고 ls
디렉토리를 보지 말라고 지시하십시오.
ls -d .*
grep
기반 접근 방식 과 달리 다중 열 목록을 허용한다는 이점이 있습니다 .
ls -d .* | grep -v '^d'
또는 (zsh 만 해당)print -lr .*(.)
기록을 위해 이것은 ls -a
2 개 (때로는 더 많은 열)를 인쇄하기 때문에 나와 함께 작동하지 않는 것 같습니다 . -1
모든 파일이 자체 줄에 있는지 확인 하는 옵션을 사용하는 것이 좋습니다 . 이 같은:
alias hidden='ls -a1 | grep "^\."'
ls -a | cat
2 열에 여전히 출력을 시도 했습니다. GNU ls가 아닌 Solaris를 사용하고 있다고 언급해야합니다. 아마도 그럴 수도 있습니다. 모든 경우에 귀하의 -1
솔루션은 완벽하게 작동했으며 내 해킹 해결 방법보다 훨씬 우아합니다. 답변을 업데이트하고 있습니다.
약간 더 복잡하게 만들지 만 구문 분석을ls
피하십시오 .
llsh () { find "${@:-.}/" -maxdepth 1 -type f -name ".*" -ls; }
lsh () { find "${@:-.}/" -maxdepth 1 -type f -name ".*" -print; }
두 쉘 함수는 find
현재 디렉토리 또는 명령 행에 제공된 디렉토리에 모든 숨겨진 일반 파일 목록을 생성하는 데 사용 됩니다.
이 llsh
함수는와 같은 단일 열 목록 ls -l
을 lsh
생성하는 동안 "긴 목록" 을 생성합니다 ls -1
.
# add it to ~/.bashrc
hidden() { # lists hidden files and directories
find . -maxdepth 1 -name '.?*' -exec ls --color -d {} \;
}
hiddenfiles() { # lists hidden files
find . -maxdepth 1 -type f -name '.?*' -exec ls --color -d {} \;
}
hiddendirs() { # lists directories
find . -maxdepth 1 -type d -name '.?*' -exec ls --color -d {} \;
}
당신의 ls
지원은 -A입니까? 보낸 사람 man ls
:
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
$ ls --version
ls (GNU coreutils) 8.5
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Richard M. Stallman and David MacKenzie.
only
. 하지만 숨겨진 파일을 원했습니다 .
ls -A -1 -d -F .* | egrep -v '/$'
간단히 아래 명령을 입력하고 위에서 설명한 내용과 혼동하지 마십시오.
ls -A -1 -d -F .* | egrep -v '/$'
ls
플래그와 egrep
명령이 어떻게 그리고 왜 질문에 대답 하는지 설명해야합니다 .
ls -lart | sed -n "/ \.[A-Za-z0-9][A-Za-z0-9]*/p"
'ls -a | grep '"'"'^\.'"'"'
그것은 끔찍해 보입니다 (이 예제의 경우 두 쌍 중 하나에 대해 큰 따옴표를 바꿀 수 있기 때문에 완전히 불필요합니다). 그러나 매우 드문 경우에 유용합니다.-C
플래그 를 원할 수도 있습니다 (다중 열 출력 강제). 이미지 참조 imgur.com/a/VIVFP