我有一张安装CD来安装我制作的Visual Studio C++应用程序.AutoPlay弹出窗口显示"Publisher未指定"以运行setup.exe.如何指定发布者?
我正在尝试实现我自己版本的'cd'命令,该命令向用户显示可供选择的硬编码目录列表,并且用户必须输入与列表中的条目对应的数字.该程序,my_cd.py现在命名,然后应该有效地"cd"用户到所选目录.这应该如何工作的示例:
/some/directory
$ my_cd.py
1) ~
2) /bin/
3) /usr
Enter menu selection, or q to quit: 2
/bin
$
Run Code Online (Sandbox Code Playgroud)
目前,我正在尝试'cd'使用os.chdir('dir').但是,这不起作用,可能是因为my_cd.py它在自己的子进程中启动了.我尝试将调用包装my_cd.py在一个名为的源bash脚本中my_cd.sh:
#! /bin/bash
function my_cd() {
/path/to/my_cd.py
}
/some/directory
$ . my_cd.sh
$ my_cd
... shows list of dirs, but doesn't 'cd' in the interactive shell
Run Code Online (Sandbox Code Playgroud)
关于如何让这个工作的任何想法?是否可以从python脚本更改我的交互式shell的当前目录?
我有一个常见的用例,我想写一个函数:我经常想要cd到一些相对于某个文件的目录.
$ gem which rspec/core | xargs echo -n | pbcopy
$ cd *paste and delete end until direcory looks right*
Run Code Online (Sandbox Code Playgroud)
注意:gem which rspec/core打印类似"/Users/joshcheek/.rvm/gems/ruby-1.9.3-p125/gems/rspec-core-2.10.0/lib/rspec/core.rb"
$ gem which rspec/core | 2dir 3
Run Code Online (Sandbox Code Playgroud)
这将把我变成"/Users/joshcheek/.rvm/gems/ruby-1.9.3-p125/gems/rspec-core-2.10.0"(传递参数"3"告诉它删除"lib/rspec/core.rb"从头到尾"
2dir() {
read dir
for i in $(seq 1 $1)
do
dir="${dir%/*}"
done
cd "$dir"
}
Run Code Online (Sandbox Code Playgroud)
但是cd改变了函数的目录,而不是我的目录.我尝试用别名交换它,但无法弄清楚如何制作匿名函数或传递参数.
我有一个文件,说:~/cwd。该文件的内容为一行:
~/tmp
Run Code Online (Sandbox Code Playgroud)
我想要cd这个(〜/ tmp)目录。我尝试着:
> cd `cat ~/cwd`
Run Code Online (Sandbox Code Playgroud)
并得到:
-bash: cd: ~/tmp: No such file or directory
Run Code Online (Sandbox Code Playgroud)
为什么相对路径失败?当的内容~/cwd是绝对路径时-它起作用。
鉴于此文件
Set-Location C:\
Run Code Online (Sandbox Code Playgroud)
如果我运行它
.\foo.ps1
Run Code Online (Sandbox Code Playgroud)
它将更改脚本中的目录.但是,一旦脚本完成,父控制台目录也已更改.可以Set-Location这样的方式调用只影响正在运行的脚本吗?
我还是一个Linux新手,我想知道:什么是Linux目录//?
我可以使用cd /将dir(cd)更改为根目录
~> cd /
/>
Run Code Online (Sandbox Code Playgroud)
使用pwd(工作目录的打印名称)告诉我我在root(/)
/> pwd
/
Run Code Online (Sandbox Code Playgroud)
使用ls(列出目录内容)我看到以下内容(使用Raspbian Jessie)
/> ls
bin boot dev etc home include lib lost+found media mnt opt proc root run sbin share srv sys tmp usr var
Run Code Online (Sandbox Code Playgroud)
我错误地将dir更改为//并发现它是有效的:
~> cd //
//>
Run Code Online (Sandbox Code Playgroud)
另外使用pwd告诉我我在一个名为//的目录中:
//> pwd
//
Run Code Online (Sandbox Code Playgroud)
但是使用ls我看到我可能仍然处于'某种东西'看起来像根.
//> ls
bin boot dev etc home include lib lost+found media mnt opt proc root run sbin share srv sys tmp usr var
Run Code Online (Sandbox Code Playgroud)
...但告诉我它叫//(rootroot ;-)
那么目录是什么//?
我关于SO的第一个问题,如果不做正确的事情就道歉!
关于在脚本中使用cd,互联网上有很多问题,但我的问题是在我放入的bash函数中使用cd .bashrc.它的任务是找到一个文件并转到该文件的工作目录.如果找到多个文件,我只是转到第一个.这里是:
fcd() {
cd $PWD
if [ -z "$1" ]; then
echo 'Specify a file name to find'
else
found_dir=$( find . -name $1 -type f -printf \"%h/\" -quit )
echo $found_dir
if [ -z "$found_dir" ]; then
echo "No file found. Directory was not changed"
else
cd $found_dir
fi
fi
}
Run Code Online (Sandbox Code Playgroud)
但是,当我使用它时,找到目录,但尝试cd $found_dir导致消息:
cd: (directory_here): No such file or directory
Run Code Online (Sandbox Code Playgroud)
我已经排除了路径错误的可能性 - 通过复制输出echo $found_dir并将其粘贴cd到目录前面会成功更改.有任何想法吗?
谢谢,
的Jakub
我已经使用 Git Bash 一段时间了,它通常工作得很好。但是,它今天停止工作,不会让我 ls 或 cd。当我尝试 ls 时,它给了我错误“发生未知错误”。当我尝试 cd 时,它给了我错误“更改目录时出错”。我认为 git 可能正在工作但无法测试它,因为我无法导航到文件夹。我确实尝试过 LS(大写字母)并且奏效了,但是目录中的文件都是白色的,而不是正常的不同颜色。CD(大写)不起作用。pwd 工作,并返回我在目录 / 中。
我用谷歌搜索了这个,但找不到任何有相同错误的人,这很有趣。我尝试重新安装 git bash 几次,但错误从未得到修复。谁有想法?
在Powershell中cd有效,但在我的Azure Cloud Shell中不起作用。我想念什么?
复制的会话显示了我尝试进入quickstart目录(在powershell shell中创建)
Welcome to Azure Cloud Shell
Type "az" to use Azure CLI 2.0
Type "help" to learn about Cloud Shell
MOTD: Switch to Bash from PowerShell: bash
VERBOSE: Authenticating to Azure ...
VERBOSE: Building your Azure drive …
Azure:/
PS Azure:\> ls -F
clouddrive@ quickstart/ test/
Azure:/
PS Azure:\> cd quickstart
cd : Cannot find path 'Azure:/quickstart' because it does not exist.
At line:1 char:1
+ cd quickstart
+ ~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: …Run Code Online (Sandbox Code Playgroud)