특정 폴더에서 명령 실행

특정 폴더에서 명령 실행

파일이 있는 동일한 디렉터리에서 실행할 때만 작동하는 스크린샷 도구가 있습니다. 이제 인쇄를 누르는 바로가기를 만들고 싶습니다. 명령은 다음과 같습니다.

bash -c '~/Documents/KneckPrint | xsel --clipboard'   

이제 말했듯이 KneckPrint 폴더에서 실행하지 않으면 작동하지 않습니다.

나는 노력했다

bash -c 'cd ~/Documents/KneckPrint | KneckPrint | xsel --clipboard'    

그러나 그것은 작동하지 않으므로 나는 단서가 없습니다.

E: bash -c '…'그렇지 않으면 xsel이 실행되지 않기 때문에 이것이 필요한 것 같습니다.

답변1

Julie Pelletier는 (댓글에서) 다음과 같이 제안했습니다.

bash -c 'cd ~/Documents/KneckPrint && KneckPrint | xsel --clipboard'

더 짧은 변형은 다음과 같습니다.

( cd ~/Documents/KneckPrint && KneckPrint | xsel --clipboard )

이것(또는 Julie의 제안)을 쉘 함수에 넣을 수 있습니다:

function knecksel {
  ( cd "$HOME/Documents/KneckPrint" && KneckPrint | xsel --clipboard )
}

하위 쉘( (...))은 명령이 완료된 후 디렉토리가 변경된 상태로 유지되는 것을 방지합니다 xsel.

답변2

rc 파일을 즉시 생성할 수 있습니다. bash --rcfile <(cd directory) -c 'command line'

관련 정보