我正在尝试在涉及xclip的Bash中写下一些别名。 我的想法是,我想将'pwd'的输出复制到剪贴板缓冲区, 在一堆目录更改后,我想回到我输入'pwd'的地方。
我在.bashrc文件中记下了一些内容:
alias putclip='xclip'
alias getclip='xclip -o'
alias wd="pwd | putclip"
alias dw="cd `getclip`"
所以在终端中,'wd'意味着我将当前目录复制到剪贴板中,然后'dw'应该让我回到那个目录。
然而,这在我的终端中不起作用。
以下代码始终有效:
$ pwd | xclip
$ cd ***
$ cd ***
$ cd `xclip -o`
任何想法如何解决这个问题? 谢谢!
更新:
更新2: 使用单引号为wd / dw修复了问题!
答案 0 :(得分:3)
使用pushd
,dirs
和popd
有更好的方法:
cd
更改目录,请使用pushd
。pushd
bash内置更改目录,如cd
,但它将当前目录推送到“目录堆栈”。dirs
bash builtin显示您在目录堆栈上推送的目录。popd
bash builtin将目录更改回最近在堆栈上推送的目录,并将其从堆栈中删除。它的工作原理如下:
$ pwd
/i/am/here
$ pushd /tmp
$ cd /some/where # do some work
$ cd /etc/other/place # do some work
$ popd # back to where I did pushd last time
$ pwd
/i/am/here
答案 1 :(得分:3)
您需要使用单引号声明别名,否则在声明别名时将执行xclip
命令。