在码头工作者我想这样做:
git clone XYZ
cd XYZ
make XYZ
Run Code Online (Sandbox Code Playgroud)
但是因为没有cd命令,所以每次都必须传入完整路径(make XYZ/fullpath).对此有什么好的解决方案?
我正在尝试从bin脚本运行时更改我的Node.js脚本的工作目录.我有以下内容:
#!/usr/bin/env node
process.chdir('/Users')
Run Code Online (Sandbox Code Playgroud)
当我随后运行此文件时./bin/nodefile,它会退出,但当前shell上下文的工作目录没有更改.我也试过shelljs,但这也不起作用.
做这个的最好方式是什么?我知道它有效,但它只是在一个单独的过程中.
我如何将which命令的结果传递给cd?
这就是我想要做的:
which oracle | cd
cd < which oracle
Run Code Online (Sandbox Code Playgroud)
但它们都不起作用.
有没有办法实现这一点(而不是复制/粘贴)?
编辑:第二个想法,此命令将失败,因为目标文件不是文件夹/目录.
所以我正在考虑并找出一个更好的方法来摆脱现在的尾随"/ oracle"部分(sed或awk,甚至是Perl):)
编辑:好的,这就是我最终得到的:
cd `which oracle | sed 's/\/oracle//g'`
Run Code Online (Sandbox Code Playgroud) 我有一个批处理文件,我打算分发给我们的客户来运行软件任务.
我们将它们分发为文件夹或.zip内部文件.在里面,有批处理文件和另一个文件夹,其中包含运行批处理所需的文件.
通常,在创建批处理时,键入文件所在的路径.但我不知道文件在哪里.这些文件仍将保存在主文件夹中,但我需要让批处理找到该文件夹来运行文件.
例如:如果他们在桌面上有主文件夹并且运行它,则需要"C:\Users\Username\Desktop"运行.您可以将批处理CD放到该位置.
但如果他们从文件中运行呢?我不知道用户名,所以我必须以某种方式让批处理找到这个.任何代码和/或指令都会很棒.
我在shell脚本中使用了'更改目录'(bash)
#!/bin/bash
alias mycd='cd some_place'
mycd
pwd
Run Code Online (Sandbox Code Playgroud)
pwd打印some_place正确,但脚本完成后,我当前的工作目录不会更改.
是否可以通过脚本更改我的路径?
我找到了几个用于通过Java类运行cmd命令的代码片段,但我无法理解它.
这是打开cmd的代码
public void excCommand(String new_dir){
Runtime rt = Runtime.getRuntime();
try {
rt.exec(new String[]{"cmd.exe","/c","start"});
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
我找到了一些其他链接来添加其他命令,如cd http://www.coderanch.com/t/109753/Linux-UNIX/exec-command-cd-command-java
任何人都可以帮助我了解如何cd目录,如:
cd C:\Program Files\Flowella
Run Code Online (Sandbox Code Playgroud)
然后在该目录上运行其他命令?
我创建了一个独立的java应用程序,我正在尝试使用Ubuntu 10.04终端中的"cd"命令更改目录.我使用了以下代码.
String[] command = new String[]{"cd",path};
Process child = Runtime.getRuntime().exec(command, null);
Run Code Online (Sandbox Code Playgroud)
但上面的代码给出了以下错误
Exception in thread "main" java.io.IOException: Cannot run program "cd": java.io.IOException: error=2, No such file or directory
Run Code Online (Sandbox Code Playgroud)
谁能告诉我如何实施它?
我尝试了很多东西.见下文:
尝试进入目录:/ cygdrive/c/Users/my dir/Documents
$ DOCS="/cygdrive/c/Users/my\ dir/Documents"
$ echo $DOCS
/cygdrive/c/Users/my\ dir/Documents
$ cd $DOCS
-bash: cd: /cygdrive/c/Users/my\: No such file or directory
$ cd /cygdrive/c/Users/my\ dir/Documents
(success)
Run Code Online (Sandbox Code Playgroud)
非常奇怪的行为.当我手动输入时,退格会执行其转义字符.但是当我使用变量DOCS的参数扩展时.
我尝试了其他变体,例如没有反斜杠.
$ DOCS=/cygdrive/c/Users/Rahman\ dir/Documents
$ echo $DOCS
/cygdrive/c/Users/my dir/Documents
$ cd $DOCS
-bash: cd: /cygdrive/c/Users/my: No such file or directory
Run Code Online (Sandbox Code Playgroud)
要么
$ DOCS="/cygdrive/c/Users/my dir/Documents"
$ echo $DOCS
/cygdrive/c/Users/my dir/Documents
$ cd $DOCS
-bash: cd: /cygdrive/c/Users/my: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我知道这是可能的.看这里:
$ echo $HOME
/home/my dir
Run Code Online (Sandbox Code Playgroud)
[编辑]正如所指出的,cd $ HOME也不起作用.引号必须放在它周围.
有没有搞错:
$ …Run Code Online (Sandbox Code Playgroud) 我使用了这个命令:
docker exec compassionate_mclean cd /root/python
返回的错误是
docker-exec:执行失败:exec:"cd":在$ PATH中找不到可执行文件
请帮助我
当我想要一个目录时,我使用
cd ..
但是当我想要去7个目录时除了输入七(7)次之外还有什么方法可以做到这一点cd ..吗?