1
bash를 구성하여 파일 이름을 확장하여 파일 이름을 확장하면 모든 하위 폴더와 현재 폴더가 검색됩니다.Bash : 모든 하위 폴더의 파일 이름 완성 완료
readme.txt colors/red.txt people/roger.txt
bash를 구성하여 파일 이름을 확장하여 파일 이름을 확장하면 모든 하위 폴더와 현재 폴더가 검색됩니다.Bash : 모든 하위 폴더의 파일 이름 완성 완료
readme.txt colors/red.txt people/roger.txt
다음과 같은 상황을 가정 할 때, 하위 디렉토리 두 가지 수준의 포함 : 내 폴더 구조
readme.txt
colors/blue.txt
colors/red.txt
people/roger.txt
내가 less r<tab>
(또는 어쩌면 less **/r<tab>
을 원하는 모든 확장 옵션이 r
로 시작하는 보여주기 위해 확장
.
├── colors
│ ├── blue.txt
│ └── red.txt
├── completion.bash
├── people
│ ├── rdir
│ ├── roger.txt
│ └── subdir
│ └── rhino.txt
└── readme.txt
원하는 완성도를 얻을 수 있습니다. 이 기능 i 번째 :
_comp_less() {
# Store current globstar setting and set globstar if necessary
local glob_flag
if shopt -q globstar; then
glob_flag=0
else
glob_flag=1
shopt -s globstar
fi
# $2 is the word being completed
local cur=$2
# Loop over all files and directories in the current and all subdirectories
local fname
for fname in **/"$cur"*; do
# Only add files
if [[ -f "$fname" ]]; then
COMPREPLY+=("$fname")
fi
done
# Set globstar back to previous value if necessary
if ((glob_flag == 1)); then
shopt -u globstar
fi
return 0
}
그것은 globstar
쉘 옵션을 확인하고 필요한 경우 설정 (그리고 그것으로 시작하도록 설정되지 않은 경우 다시 설정을 해제)를 선택한 다음 모든 파일과 디렉토리를 얻을 수있는 **/"$cur"*
글로브를 사용 (하위 디렉토리 포함)을 선택하고 마지막으로 디렉토리 이름을 필터링합니다. 언제나 특정 명령의
$ less r
colors/red.txt people/subdir/rhino.txt
people/roger.txt readme.txt
를, 또는 :
이제
less r<tab>
완료는 다음과 같이기능은
less
을 위해 사용하는 명령과 함께, 당신의.bashrc
에 갈 수 있습니다 ? –항상 "x"이 일반적으로 현재 폴더에서 x로 시작하는 모든 파일을 반환 할 때마다 아래 폴더에서도 모두를 반환 할 수 있습니다. –
mahemoff
'compgen -F' 동작을 오버라이드해야하므로 _always_가 발생할 수 있는지 확실하지 않습니다. 당신은 아마 당신 자신의 완성 기능을 가진 특정한 명령을 위해 그것과 비슷한 것을 얻을 수 있습니다. –