标签: path

如何摆脱路径中的“`”(重音/反引号)?

我倾向于在经常使用的文件和文件夹前面加上“重音符号”字符(非移位波浪号、反勾号或普通的旧口音,whathaveyou..),因为它很容易理解,让我来看看按字母顺序排序,同时让我选择在顶部显示一些项目。它运行良好,除非我通过 CLI 或 SSH/SCP 访问这些文件。

如果我尝试运行命令,调用未转义的文件?它让我进入一个交互式会话......例如?

# scp -r dns.local:/`Downloads/CrazyRussianCars/ ~/
?
>
Run Code Online (Sandbox Code Playgroud)

然而,如果我尝试合乎逻辑的解决方案?

# scp -r dns.local:/\`Downloads/CrazyRussianCars/ ~/
?
bash: -c: line 0: unexpected EOF while looking for matching ``'
bash: -c: line 1: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)

我知道“新”规则是使用像export NOW=$(date)vs export NOW= `date`这样的语法 (实际上,我什至用 SE MD 语法编写后者...),但这与ENV脚本或任何脚本无关。 ..

注意:一个 Mac OS X 环境,但也就是说,GUI 在日常处理这个字符时从来没有遇到过问题,通常,如果终端中出现语法问题,Apple在禁用 GUI 中的行为方面做得非常好......不确定这是否是一个错误,或者处理此类路径的技术是否只是晦涩难懂......但到目前为止,我一直无法找到方式“逃避它”

ssh command-line-interface mac-osx escaping path

14
推荐指数
2
解决办法
3万
查看次数

PATH 中的环境变量未针对非管理员命令提示符展开?

我有一台 Windows 7 机器,当普通用户运行命令提示符时,它无法在%PATH%. 如果命令提示符改为以管理员身份运行(右键单击,以管理员身份运行),则%PATH%适当展开。

具体来说,%PATH%cmd.exe用户身份运行(通过 显示set path)如下:

Path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\
Run Code Online (Sandbox Code Playgroud)

...而%PATH%cmd.exe管理员身份运行如下:

Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\
Run Code Online (Sandbox Code Playgroud)

我尝试以新用户身份登录以创建新配置文件,该问题也仍然存在于该配置文件中。HKEY_CURRENT_USER\Environment\PATH不存在,并且HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path与计算机属性 -> 环境变量中定义的系统范围路径相匹配。

有没有人知道这可能是什么,或者我可以在哪里看?

windows-7 command-line-interface environment-variables path

12
推荐指数
1
解决办法
2万
查看次数

如何在批处理文件中设置全局 PATH 环境?

每次我登录时,我们环境中的组策略都会覆盖 PATH 变量,并且当我运行“非标准”计算机时,它完全错误(C:\Windows vs C:\WINNT,缺少目录等)。目前,我每次登录时都会手动更改它,但这开始变得令人厌烦。

如果我使用 SET 命令更改批处理文件中的 PATH 变量,它仅具有本地范围,因此更改仅适用于批处理文件中的命令。

set PATH=C:\WINNT;C:\WINNT\System32
set PATH
Run Code Online (Sandbox Code Playgroud)

这个批处理文件将输出新路径,但如果我set PATH之后在命令行上运行,它仍然是原始路径。

如何在批处理文件中设置全局PATH 环境?或者我可以使用另一种技术吗?

windows batch-file environment-variables path

11
推荐指数
1
解决办法
4万
查看次数

当远程 rsync 在路径中时,rsync 需要 rsync-path

我很困惑为什么 rsync 需要 --rsync-path 标志,即使远程 rsync 在路径中。

考虑:

$ rsync -avze 'ssh -p 22' --delete public/ pmatos@domain.com:~/public_html
bash: /usr/local/bin/rsync: No such file or directory
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: remote command not found (code 127) at io.c(601) [sender=3.0.7]
Run Code Online (Sandbox Code Playgroud)

然后我尝试添加 --rsync-path

$ rsync -avze 'ssh -p 22' --rsync-path=/usr/bin/rsync  --delete public/ pmatos@domain.com:~/public_html
sending incremental file list
...
Run Code Online (Sandbox Code Playgroud)

因此,第一个 rsync 没有成功,因为它正在 /usr/local/bin 中搜索 rsync,但是一旦我使用 --rsync-path 传递了 rsync 的明显路径,它就会起作用。

为什么是这样?(此命令行是 octopress 中 rake deploy 发出的命令行)

rsync path

11
推荐指数
1
解决办法
2万
查看次数

从 PATH 变量中删除重复条目

我经常修改我的 .bashrc 然后获取它。但是,当export PATH="~/bin:~/perl5/bin:$PATH"我的文件中有类似内容 时,PATH每次获取文件时环境变量都会增加。

例如,第一次获取 .bashrc 时,PATH变量由.bashrc组成~/bin:~/perl5/bin:/usr/bin:/bin

第二次它由~/bin:~/perl5/bin:~/bin:~/perl5/bin:/usr/bin:/bin.

第三次它由~/bin:~/perl5/bin:~/bin:~/perl5/bin:~/bin:~/perl5/bin:/usr/bin:/bin.

有没有一种简单的方法可以让它只添加任何不在 PATH 中的东西?

shell bash bashrc path

10
推荐指数
1
解决办法
5291
查看次数

通过远程 SSH 连接使用 rsync 时在远程路径中转义空格

当使用 SSH 将 rsync 连接到远程服务器时,如何在远程路径中转义空格等?一个简单的反斜杠转义本地 bash 提示符的空间,但在远程机器上,该空间被读取为路径中的中断,从而标记该路径的结尾。

因此,当我这样rsync -avz /path/to/source/some\ dir/ user@host.tld:/path/to/dest/some\ dir/做时,远程服务器正在读取它/path/to/dest/some/,因为它无法远程找到该目标,因为实际目标是“某个目录”而不仅仅是“某个”。

如果我尝试相同的命令并转义反斜杠和空格以通过本地 bash 提示符并维护远程服务器的反斜杠(总共三个反斜杠:)/path/to/dest/some\\\ dir/,它确实将反斜杠发送到远程服务器,但远程服务器然后将路径解释为/path/to/dest/some\/而不是/path/to/dest/some\ dir/仍然剥离空格和它后面的字符。

如果我尝试用引号包裹路径,它的行为方式几乎相同,有效地在空格处切断路径。所以它也只能通过本地 bash 提示。

最初我使用的路径中有一个“ - ”(空格-连字符-空格)段,远程服务器返回一个错误rsync: on remote machine: -: unknown option,这是整个空间转义努力的开始。

那么我必须做些什么才能使远程服务器正常工作,而不必从远程路径中删除空格或其他错误字符(如连字符)?

ssh bash rsync remote path

10
推荐指数
2
解决办法
1万
查看次数

IIS 7.5 (Express) applicationhost.config:virtualDirectory 的 physicalPath 可以是相对路径吗?

我正在applicationhost.config为 IIS 7.5 Express配置一个站点:

<site name="default" id="1" serverAutoStart="true">
    <application path="/">
        <virtualDirectory path="/" physicalPath="%IIS_BIN%\..\Somewhere\Else" />
                                            <!-- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -->
    </application>
    ...
</site>
Run Code Online (Sandbox Code Playgroud)

我发现指定所示的相对路径似乎不起作用,并且会导致 HTTP 500.19 Internal Server Error. IIS 进一步报告错误代码0x8007007b,经过一些谷歌搜索后,似乎表明文件路径语法无效。

有什么办法可以解决这个错误,以便我可以为我的站点的根使用相对物理路径?

configuration path iis-7.5 xml virtual-directory

9
推荐指数
1
解决办法
5454
查看次数

找不到二进制文件,但 $PATH 中包含路径

所以我尝试在 Ubuntu 10.04 上安装 Mercurial。首先我使用了 ppa repo,但是遇到了pythonpath错误,我放弃了。下一次尝试从源代码安装,一切顺利,除了找不到 hg:

$ hg
-bash: /usr/bin/hg: No such file or directory
Run Code Online (Sandbox Code Playgroud)

但是, hg 安装在 /usr/local/bin/ 中:

$ which hg
/usr/local/bin/hg
Run Code Online (Sandbox Code Playgroud)

PATH 包含此目录,为什么找不到 hg?

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Run Code Online (Sandbox Code Playgroud)

如果我使用完整路径执行 hg ,它会起作用:

$ /usr/local/bin/hg --version
Run Code Online (Sandbox Code Playgroud)

任何帮助真的很感激!

mercurial path

9
推荐指数
1
解决办法
4294
查看次数

覆盖特定用户的二进制文件路径

我的问题似乎微不足道,但我没有在互联网上找到任何有用的东西。我有一个二进制文件

/urs/bin/binary
Run Code Online (Sandbox Code Playgroud)

但它已经过时,例如在某些安装上可以使用较新的版本

/mount/new_version/binary
Run Code Online (Sandbox Code Playgroud)

有一个 bash 脚本以类似的形式调用这个二进制文件

binary -doSomething
Run Code Online (Sandbox Code Playgroud)

我需要此脚本来调用新版本的二进制文件而不是旧版本,但我无权更改此脚本。是一种以某种方式覆盖它的路径但仅适用于我的用户的方法吗?任何帮助,将不胜感激。

scripting linux bash path

9
推荐指数
1
解决办法
1万
查看次数

为什么macports找不到make

我正在尝试像这样运行 macports:

port install php5
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,我收到此错误:

Error: Unable to open port: can't read "build.cmd": Failed to locate 'make' in path: '/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin' or at its MacPorts configuration time location, did you move it? 
Run Code Online (Sandbox Code Playgroud)

所以我看了一下我的路径:

declare -x PATH="/Developer/usr/bin:/opt/subversion/bin:/opt/local/bin:/opt/local/sbin:/usr/local/php5/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin" 
Run Code Online (Sandbox Code Playgroud)

然后查看以确保 make 位于其中一个目录中:

ls -l /Developer/usr/bin/make

$ lrwxr-xr-x 1 root admin 7 Aug  7 16:47 /Developer/usr/bin/make -> gnumake
Run Code Online (Sandbox Code Playgroud)

并键入:

make
Run Code Online (Sandbox Code Playgroud)

产生:

make: *** No targets specified and no makefile found.  Stop.
Run Code Online (Sandbox Code Playgroud)

所以我知道它就在那里。

但是macports找不到它。有任何想法吗?

G-Man

port mac-osx make path

8
推荐指数
3
解决办法
1万
查看次数