从特定文件夹执行命令

从特定文件夹执行命令

我有一个屏幕截图工具,仅当我从文件所在的同一目录启动它时才起作用。现在我想创建一个只需按打印的快捷方式,命令是:

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

现在正如我所说,如果我不从 KneckPrint 文件夹执行它,这将不起作用。

我试过了

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

但这不起作用,所以我一无所知。

E:这bash -c '…'似乎是必要的,因为否则 xsel 不会被执行。

答案1

朱莉·佩尔蒂埃建议(在评论中):

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

一个较短的变体是

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

这(或朱莉的建议)可以放入 shell 函数中:

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

子 shell ( (...)) 可以防止命令完成后目录保持更改状态xsel

答案2

您可以即时创建 rc 文件: bash --rcfile <(cd directory) -c 'command line'

相关内容