특정 파일이나 디렉터리에 대한 별칭을 설정하는 방법은 무엇입니까?

특정 파일이나 디렉터리에 대한 별칭을 설정하는 방법은 무엇입니까?

내가 정기적으로 사용하는 파일이 여러 개 있습니다. 예를 들어 일부 구성 파일이나 로그 파일이 있습니다. Apache 로그 파일을 가정해 보겠습니다. 나는 종종 tail그것을 원합니다 grep. 다음을 작성하는 대신:

tail -50 /var/log/apache2/error_log

나는 글쓰기를 선호한다

tail -50 apachelog

따라서 apachelog해당 파일 이름의 별칭 역할을 합니다. 그러나 my 에 별칭을 정의하려면 bashrc나중에 참조할 수 있도록 파일 이름에 대한 별칭이 될 수 없는 완전한 명령이어야 합니다. 이것을 달성할 수 있는 방법이 있나요?

참고: 실행하고 싶은 다양한 파일과 다양한 명령이 있으므로 이러한 다양한 옵션에 대한 함수나 별칭을 만드는 것은 제가 선호하는 솔루션이 아닙니다.

답변1

다음을 사용하여 변수를 정의하고 $해당 값을 호출할 수 있습니다.

apachelog=/var/log/apache2/error_log
tail -50 $apachelog

Bash에서는 더 잘할 수 없습니다. zsh에서는 명령줄의 어느 곳에서나 확장되는 전역 별칭을 정의할 수 있습니다.

alias -g apachelog=/var/log/apache2/error_log
tail -50 apachelog

apachelog하지만 이제는 문자열을 명령에 인수로 전달하려는 경우 인용해야 한다는 점을 기억해야 하기 때문에 권장하지 않습니다 .

답변2

함수를 생성하고 "backwards" 명령을 작성할 수 있습니다.

apachelog() {
  "$@" /var/log/apache2/error_log
}

apachelog tail -50

답변3

디렉토리의 별칭은 link입니다. 그렇기 때문에 한 가지 가능성은 디렉토리에 관심 있는 파일에 대한 링크를 여러 개 만드는 것입니다. 그런 다음 tail에 rtail의 별칭을 지정하여 해당 디렉터리에서 파일을 찾습니다.

답변4

이것을 네 안에 넣어라~/.bashrc

 alias tailapache='tail -50 /var/log/apache2/error_log'

source ~/.bashrc새로운 bash 세션을 실행 하거나 시작하세요...

그럼 그냥 들어가시면 됩니다tailapache

관련 정보