mv
일반 폴더에서 정상적인 동작을 수행하고 git 저장소 내에서 교체되도록 별칭을 만들려고 합니다 . git mv
나는 많은 방법을 시도했습니다. 명령문은 작동하지만 명령이 올바르게 실행되지 않는 if
것뿐입니다 .git mv
alias mv='"$(
if [ x`git rev-parse --show-toplevel 2> /dev/null` = x ];
echo mv;
else
echo "git mv";
fi)"'
답변1
나는 다음과 같은 기능을 사용할 것입니다 :
gitmv()
{
# If in a git repo - call git mv. otherwise- call mv
if [ x`git rev-parse --show-toplevel 2> /dev/null` = x ];
then
mv "$@"
else
git mv "$@"
fi
}
편집하다:
alias mv=gitmv
답변2
jhscheer가 더 나은 솔루션(IMHO)을 제안했지만 별칭만 사용하여 원하는 작업을 수행하는 것도 여전히 가능합니다.
외부 큰따옴표가 단일 태그를 형성하고 실행 파일이 git mv
없기 때문에 별칭이 작동하지 않습니다. git mv
외부 큰따옴표를 제거하면 별칭이 제대로 작동합니다.
그런데 안쪽의 큰따옴표는 echo "git mv"
쓸모는 없지만 해가 없습니다.
테스트에 즉시 사용할 수 있는 git 저장소가 없지만 다음 별칭을 사용해 보았습니다.
alias foo='$(if [ x"`pwd`" = x"$HOME" ] ; then echo echo; else echo echo foo; fi)'