2014-07-19 6 views
2

물고기의 recursive wildcards은 매우 유용합니다. 그러나 파일이나 디렉토리에 선의 점이 찍히고 싶다면 작동하지 않습니다. 예를 들어dotfiles 및 -folders에 대해 fish 쉘에서 재귀 적 와일드 카드를 사용하는 방법은 무엇입니까?

:

folder 
├subfolder 
│ └test.txt 
├.subfolder 
│ └test.txt 
├test.txt 
└.test.txt 

지금 ls -a **.txt을 실행하면 출력이 선행 점의 폴더에 없거나 자체 dotfiles 없습니다 만 test.txt 파일을 보여줍니다. (출력 : subfolder/test.txt test.txt)

어떻게 해결할 수 있습니까?

답변

3

물고기 issue #1568입니다.

이 작업을 수행 할 간단한 방법은 현재 없습니다, 긴 가지 방법은 다음과 같습니다 (발견 등)

  • 를 사용하여 외부 프로그램

또는

  • 더 복잡한 작업을 수행

    ls -a ** .txt. * .txt ** /. * .txt

이러한 순서는 다음과 같습니다 (점이 아닌 파일, 현재 디렉토리의 점 파일, 하위 디렉토리의 점 파일).

0

와일드 카드는 복잡한 검색을 위해 설계되지 않은 간단한 API로 설계되었습니다.

복잡한 검색의 경우 find 쉘 명령을 사용할 수 있습니다.

find -name test.txt -print0 | xargs -0 ls -a 

또는 파일 이름에서 새 줄을 신경 쓰지 않는다면.

ls -a (find -name test.txt) 
+0

좋아,하지만 복잡한 검색을하고 싶지는 않습니다. 나는 오직 도트 파일을위한 와일드 카드/폴더를 정상적인 파일이나 폴더처럼 맨 앞줄이없는 것처럼 만들고 싶다. – mamiu