# which mkdir
/bin/mkdir
# which mkdi
#
mkdir
예를 들어 바이너리 파일 이름을 모르고 바이너리 파일의 경로를 얻는 방법은 무엇입니까? (주문하다). 이것도 which mkdi
출력됩니다 /bin/mkdir
.
답변1
zsh에서:
echo $path/mkdi*(N)
다른 껍질에서는 사람이 섭취할 수 있습니다.
set -f; IFS=:
for x in $PATH; do set +f; ls $x/mkdi* 2>/dev/null; done
답변2
locate mkdi
업데이트: 출력이 다음으로 제한됩니다.$PATH
locate mkdi |
while read filename; do
[[ ":$PATH:" == *:$(dirname $filename):* ]] && echo $filename
done
답변3
run-parts
이는 올바른 매개변수가 제공되는 한 수행될 수 있습니다. 다음은 제가 작성한 간단한 래퍼입니다.
#!/bin/bash
# swhich - search the path (like which) but with support for regular expressions
# "swhich '.*ch$' '^wh'" to find all in path ending with 'ch' and all starting with 'wh'
set -f; IFS=:
for all in $PATH
do
set +f
for each in "$@"
do
run-parts --list --regex "$each" "$all"
done
done
답변4
compgen
주어진 문자열에 대한 완성을 생성하는 BASH 내장 명령입니다. 스위치 완료 경로 -c
의 명령 이름 :
$ compgen -c mkd
mkdirhier
mkdir
mkdiskimage
mkdir
참고: mkdir
이는 내 시스템의 /bin 및 /usr/bin에 있기 때문에 두 번 나타납니다.
프로그래밍 가능한 완성이 멋지네요. 다음과 같은 작업을 수행할 수 있습니다.
$ shopt -s progcomp; complete -c which # set up progcomp
$ which mkd<ALT-*>
$ which mkdir mkdirhier mkdiskimage
...이것이 당신이 찾고 있는 것에 더 가까울 수도 있습니다.