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


42

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

ls -a | grep '^\.'

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

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

.bash_aliases파일

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

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


더 복잡한 예제를 사용하면 작은 따옴표에서 큰 따옴표로 전환 할 필요가 거의 없습니다. 이것은 따옴표를 서로 맞대기 만하면됩니다. 이 예제의 경우 'ls -a | grep '"'"'^\.'"'"'그것은 끔찍해 보입니다 (이 예제의 경우 두 쌍 중 하나에 대해 큰 따옴표를 바꿀 수 있기 때문에 완전히 불필요합니다). 그러나 매우 드문 경우에 유용합니다. -C플래그 를 원할 수도 있습니다 (다중 열 출력 강제). 이미지 참조 imgur.com/a/VIVFP
Dylan

답변:


26

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

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

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

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

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

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

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

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

90

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

ls -d .*

6
이는 grep기반 접근 방식 과 달리 다중 열 목록을 허용한다는 이점이 있습니다 .
anol

그러나 언급 된 디렉토리도 표시됩니다. 그대로 유지하고 파일 만 표시하는 방법은 무엇입니까?
honzajde

@honzajde 질문은 디렉토리를 제외하도록 요구하지 않았습니다. 디렉토리를 제외하려면 다음을 사용하십시오. ls -d .* | grep -v '^d'또는 (zsh 만 해당)print -lr .*(.)
Gilles 'SO-stop

Ubuntu 16.04
Andrew_1510

9
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 "^\."'

4

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

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

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

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

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

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

2

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

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

방금 ls -a | cat2 열에 여전히 출력을 시도 했습니다. GNU ls가 아닌 Solaris를 사용하고 있다고 언급해야합니다. 아마도 그럴 수도 있습니다. 모든 경우에 귀하의 -1솔루션은 완벽하게 작동했으며 내 해킹 해결 방법보다 훨씬 우아합니다. 답변을 업데이트하고 있습니다.
rahmu

아마도이 토론을 놓쳤을 수도 있지만 문제가 발생하면 여기를보십시오.
xralf

1

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

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

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

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

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


0
find . -type f -name ".*"

또는

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

안녕하세요! 작동 방식을 자세히 설명하고 질문에 답변하는 이유를 언급하여 답변을 개선 할 수 있습니다.
dhag

0
# 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 {} \;
        }

-1

당신의 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. 하지만 숨겨진 파일을 원했습니다 .
xralf

ls -A -1 -d -F .* | egrep -v '/$'
waltinator

-3

간단히 아래 명령을 입력하고 위에서 설명한 내용과 혼동하지 마십시오.

ls -A -1 -d -F .* | egrep -v '/$'

OP가 별칭을 올바르게 작성하는 방법을 요구했다고 생각합니다.
카운터 모드

1
그것은 단지 그 / 그녀의 답변에 대한 waltinator의 의견의 사본 일뿐입니다. 이 답변이 유용하려면 특정 ls플래그와 egrep명령이 어떻게 그리고 왜 질문에 대답 하는지 설명해야합니다 .
Anthony G-Monica에 대한 정의

-3
ls -lart | sed -n "/ \.[A-Za-z0-9][A-Za-z0-9]*/p"

2
답변을 명확하게 설명해 주시겠습니까? 한 줄의 코드는 좋은 답변으로 간주되지 않습니다
Romeo Ninov

요구 사항에 따라 숨겨진 파일 만 나열하면됩니다. 그래서 ls -lart로 숨겨진 파일을 포함한 모든 파일을 나열했습니다. 그런 다음 regex를 사용하여 dot (.)로 시작하는 파일을 보여줍니다. 나는 이렇게 아웃 아웃했습니다.
shailesh Chanderiya

[g906016 @ hklu2574881 : [PTA] ~] $ ls -lart | sed -n "/ \. [A-Za-z0-9] [A-Za-z0-9] * / p"-rw-r--r-- 1 g906016 g906016 658 2016 년 12 월 29 일 .zshrc -rw- r--r-- 1 g906016 g906016 171 12 월 29 2016 .kshrc -rw ------- 1 g906016 g906016 27 12 월 29 2016 .k5login -rw-r--r-- 1 g906016 g906016 176 12 월 29 2016. bash_profile -rw-r--r-- 1 g906016 g906016 2016 년 12 월 29 일 .bash_logout -rwxr-xr-x 1 g906016 g906016 0 12 월 29 2016 .dir_colors drwxr-x --- 3 g906016 g906016 4096 12 월 29 2016 .subversion
shailesh Chanderiya 3
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.