cd를 사용하여 명령 줄 자동 완성에서 .DS_Store를 제거하는 방법?


16

.DS_store파일이 목적에 부합 한다는 것을 이해합니다 . 즉, cd명령으로 자동 완성 할 때 성가신 것 입니다. cd터미널에 입력 하고 tab을 두 번 누르면 작업 디렉토리의 모든 디렉토리가 나열됩니다.

.DS_store터미널의이 자동 완성 디렉토리 목록에서 제거하는 방법 이 있습니까?


cd터미널에 다음 키를 두 번 입력하면 디렉토리뿐만 아니라 모든 가능성이 나열되기 전에 프롬프트가 표시됩니다.
Graham Perrin 1

그것은 더 나은 행동처럼 보입니다. CD를 두 번 탭할 때 파일 목록을 방지하는 방법을 알고 있습니까?
Jeromy Anglim 1

cd */그 다음에 두 개의 탭에는 현재 디렉토리의 모든 하위 디렉토리가 나열됩니다. 하지만 당신은 하나를 선택 백 스페이스에이 ...
LHF

@lhf 감사합니다. 그 옵션을 갖는 것이 좋습니다. cd기본적으로 디렉토리 만 나열하기에 충분히 똑똑하다면 더 좋을 것 입니다.
Jeromy Anglim

답변:


14

export FIGNORE=DS_Store 나를 위해 작동합니다.

GNU 배쉬 매뉴얼은 프로그램 종료에 대한 광범위한 정보를 제공합니다 .

특히 bash 변수에 대한 문서에서

FIGNORE는 파일 이름 완성을 수행 할 때 무시할 콜론으로 구분 된 접미사 목록입니다. 접미사가 FIGNORE의 항목 중 하나와 일치하는 파일 이름은 일치하는 파일 이름 목록에서 제외됩니다. 샘플 값은 '.o : ~'

에 기존 접미사가있을 수있는 FIGNORE경우 다음을 사용할 수 있습니다.

export FIGNORE=$FIGNORE:DS_Store

당신에 대해 확실하지 않지만, 그것은 $FIGNORE:.DS_Store나를 위해 Mac에 있어야 했습니다. "."없이는 작동하지 않았습니다.
typeoneerror

@typeoneerror, 저도 마찬가지입니다. 아마도 과거에는 게시 된대로 작동했을 것입니다. 알려 줘서 고마워.
lhf

1
macOS Sierra 10.12.5에서는.

2

실제로 찾고있는 것은 Bash 명령에 대한 상황 인식 탭 완성이라고 생각합니다. 예를 들어, .DS_Store디렉토리가 아닌 일반 파일이므로 가능한 완성으로 표시되지 않아야합니다 cd.

이 문제를 해결하는 패키지를라고 bash-completion합니다. Fink의 버전 ( fink install bash-completion)을 사용하며 MacPorts ( port install bash-completion) 및 Homebrew ( brew install bash-completion) 에서도 구할 수 있습니다 .

패키지가 .bashrc 또는 .bash_profile에 설치되고 구성된 후에는 일반 파일이 더 이상 cd를위한 완료로 표시되지 않으며 다른 많은 일반적인 bash 명령도 컨텍스트를 인식하게됩니다 (예 :) gunzip.


1

.DS_Store 만 묻는 동안 자동 완성에서 모든 숨겨진 파일을 제거하는 것이 일반적으로 더 좋을 것이라고 생각합니다. 다음 명령으로 수행 할 수 있습니다.

'일치-숨김 파일 설정 해제'

~ / .bash_profile을 추가하여 매번 호출하도록 할 수 있습니다. 숨겨진 파일에 대한 자동 완성 기능을 완전히 비활성화하지는 않지만 여전히 '.'을 입력 할 수 있습니다. (점)을 누르고 탭하십시오.


-1

이 명령을 사용합니다.

zip -r foo.zip foo -x "*.DS_Store"

여기에서 찾을 수 있습니다 : /superuser/198569/compressing-folders-on-a-mac-without-the-ds-store


이것은 자동 완성에서 .DS_Store를 제거하는 문제를 어떻게 해결합니까?
grg

글쎄, 실제로는 그렇지 않습니다. 하지만 ".DS_STORE없는 mac zip"을 검색하는 동안 해당 페이지를 우연히 발견했습니다. 그래서 다른 사람에게 도움이 될 것이라고 생각했습니다. 그래도 나쁜 생각 일 것입니다.
ling
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.