생선 껍질 :“shopt -s dotglob”아날로그


9

에서 (으) bash로 이전하려고 합니다 fish.

fish의 아날로그 는 무엇입니까 shopt? 내 에서이 줄을 모방하려고합니다 .bashrc.

shopt -s dotglob # for mv * see hidden files

없는 것이 확실합니다. 설명서 에는 구성 메커니즘에 대한 언급없이 포함되지 않은 도트 파일에 대해 설명 되어 있습니다. 아마 {,.}*수동으로 움켜 쥐어 야 할 것입니다 .
glenn jackman

1
당신은 stackoverflow.com에 물어보고 싶을 수도 있습니다.
glenn jackman

답변:


8

이것은 의도적 인 것입니다. 대부분의 경우 사용자는 ls(없이 -a) 보이지 않는 숨겨진 파일을 실수로 일치시키고 싶지 않습니다 . 일반적으로 파일은 단지 당신을 트롤하기 위해서가 아니라 이유로 숨겨져 있습니다. 또한 *숨겨진 파일과 일치 하면 숨겨지지 않은 파일과 일치하는 것이 너무 까다로울 수 있습니다.

그러나 bash와 달리 shopt -s dotglob숨겨진 파일을 일치시키는 데 필요하지 않습니다. 떠들썩한 파티에서 shopt -s dotglob우연히 일치하지 않고 디렉토리에있는 모든 파일을 일치시키는 유일한 방법입니다 .... 그러나 물고기 쉘은 일치하지 않을 수 있습니다 .또는 ..(당신이 심각하게 일치해야하는 경우, 따라서 그의하지, 문제를 globs와와 ...바보 같은 이유로, 단지 명시 적으로 말). 게다가, 물고기는 의도적으로 옵션을 갖지 않기 위해 노력하고 있습니다 dotglob.

디렉토리의 모든 단일 파일을 일치시키기 위해 대괄호 확장을 사용하여 점으로 시작하는 파일과 그렇지 않은 파일을 감지 할 수 있습니다. {.,}존재하거나 존재하지 않을 수있는 점과 일치하는 대괄호 확장입니다. 별 뒤의 별은 모든 것과 일치합니다. 물고기의 glob는 .or 와 일치 할 수 없으므로 ..다음 코드는 두 디렉토리를 제외한 모든 코드와 일치합니다 (아래 코드를 사용하면 슬프게도 일치합니다).

cat {.,}*
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.