如何将which命令的结果传输到cd

这就是我想做的:

which oracle | cd
cd < which oracle

但它们都不起作用.

有没有办法做到这一点(当然不是复制/粘贴)?

Edit : on second thought, this command would fail, because the destination file is NOT a folder/directory

因此,我现在正在思考并想出一种更好的方法来摆脱尾随的"/oracle"部分(sed或awk,甚至Perl):)

Edit : Okay that's what I've got in the end:

cd `which oracle | sed 's/\/oracle//g'`

推荐答案

在命令需要标准输入参数的情况下,可以使用管道.( M或e on this ).

cd指令,情况并非如此.目录是命令参数.在这种情况下,可以使用命令替换.使用backticks或$(...)计算命令,并将其存储到变量中..

path=`which 或acle`
echo $path # just f或 debug
cd $path

尽管可以用更简单的方法来实现:

cd `which 或acle` 

或者如果你的路径有特殊字符

cd "`which 或acle`"

cd $(which 或acle)

这相当于倒勾符号,但建议使用(倒勾符号可能与撇号混淆)

但看起来你想要:

cd $(dirname $(which 或acle))

(这表明您可以轻松使用嵌套)

$(...) (as well as backticks) w或k also in double-quoted strings, which helps when the result may eventually contain spaces..

cd "$(dirname "$(which 或acle)")"

(请注意,两个输出都需要一组双引号.)

Linux相关问答推荐

AddressSaniizer随机抛出没有任何解释的SIGSEGV

将所有列乘以一个常数

如何比较 2 个文件并将第二个文件的所有行打印到输出文件 awk

Powershell Core,MXLinuxv21,运行 linux /usr/bin/x 命令导致对象命令运行时找不到文件

将 Visual Studio C++ 项目迁移到 Linux 和 CMake

用户级线程如何与内核级线程对话

如何使用 shell 脚本将文本文件转换为 JSON 文件

根据文件名对目录中的文件进行 chgrp

使用 Dockerfile RUN 执行某些操作但忽略错误

如何使用多个版本的 GCC

从 Linux shell 将多个文件从一个目录复制到另一个目录

如何准确复制文件夹

让 sudo 和 nohup 一起工作

/dev/random 非常慢?

在类 Unix 系统中上次运行的 cron 作业(job)的详细信息?

计算每个进程打开的文件

通过 linux x86-64 函数调用保留了哪些寄存器

id_rsa.pub 文件 SSH 错误:格式无效

当我已经 ssh 进入远程机器时,如何 scp 回到本地?

Linux 上 POSIX AIO 和 libaio 的区别?