标签: working-directory

Perl Cwd :: cwd和Cwd :: getcwd函数有何不同?

这个问题

Cwd::cwdCwd::getcwdPerl有什么区别,一般来说,不考虑任何特定的平台?为什么Perl都有?什么是预期用途,我应该在哪些场景中使用?(示例用例将受到赞赏.)这有关系吗?(假设我不混合它们.)任何一个的选择是否会以任何方式影响可移植性?哪一个更常用于模块?

即使我解释手册说,除了极端情况cwd`pwd`,并getcwd只是调用getcwdunistd.h,有什么实际的区别?无论如何,这仅适用于POSIX系统.

我总是可以阅读实现,但这并没有告诉我这些函数的含义.实施细节可能会发生变化,而非定义的含义.(否则会发生重大变化,这是一项严肃的事情.)

手册说了什么

引用Perl的Cwd模块手册页:

这些函数中的每一个都不带参数调用,并返回当前工作目录的绝对路径.

  • GETCWD

    my $cwd = getcwd();

    返回当前工作目录.

    暴露POSIX函数getcwd(3)或重新实现它(如果它不可用).

  • CWD

    my $cwd = cwd();

    cwd()是当前架构最自然的形式.对于大多数系统,它与`pwd`相同(但没有尾随行终止符).

在Notes部分:

  • 事实上,在Mac OS上的getcwd(),fastgetcwd()fastcwd()功能都为所有别名cwd()功能,其中,在Mac OS,调用`pwd`.同样,该abs_path()函数是别名fast_abs_path()

好的,我知道在Mac OS 1上没有区别getcwd(),cwd()因为两者实际上归结为`pwd`.但是在其他平台上呢?(我对Debian Linux特别感兴趣.)


1经典的Mac OS,而不是OS X. $^OMacOSdarwin分别为Mac OS和OS X,.谢谢,@ tobyink@ikegami …

perl working-directory getcwd perl5

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

我可以在不触及工作目录的情况下导入补丁吗?

通常情况下,当我尝试导入补丁时,如果我有脏工作副本,Mercurial将中止:

$ hg import x.patch
abort: outstanding uncommitted changes
Run Code Online (Sandbox Code Playgroud)

是否有可能导入它?

import version-control mercurial patch working-directory

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

SVN ---将当前目录(.)添加到更改列表

我创建了一个.svnignore文件,然后使用该命令进行设置$ svn propset svn:ignore -R -F .svnignore ..现在,我的当前目录.和另一个子目录figures显示为已修改.

$ svn status 
 M      .
 M      figures
Run Code Online (Sandbox Code Playgroud)

当我尝试将这两个目录添加到更改列表时,它会失败.如何将这两个目录添加到更改列表?

$ svn changelist 'Pink Fairy Armadillo' . figures
Skipped '.'
Skipped 'figures'
Run Code Online (Sandbox Code Playgroud)

svn working-directory svnignore changelist

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

C#获取另一个进程的工作目录

我想通过读取命令行来确定已​​知进程使用的文件的绝对路径.目前,该过程是在命令行中指向各种文件(如配置文件)的相对路径启动的.问题是,如果路径不是相对于包含可执行文件的文件夹,我无法转换命令行提供的相对路径,我不能100%肯定.

例如两个批处理文件:

BATCH 1 CD c:\ test\bin test.exe ..\config\config.ini

BATCH 2 CD c:\ test bin\test.exe config\config.ini

对于批处理文件一,我得到的命令行是"c:\ test\bin\test.exe ..\config\config.ini",对于批处理文件二,我得到"c:\ test\bin\test.exe config\config.ini文件".所以,看到这个我无法解决路径.

无论如何,对于初学者,我使用ManagementObjectSearcher从WMI查询获得命令行.现在我需要从启动进程的工作目录中解析在命令行传递的路径但是如何?

编辑:我忘记了一个关键细节.我想获得另一个进程的工作目录.基本上,我的主程序从另一个程序收集信息.我能够确定进程ID,因为我知道可执行文件的名称.我也可以确定命令行.我现在必须找到可执行文件启动的工作目录或当前目录,这样我就可以解析命令行的相对路径.我希望我能使问题更清楚.

c# wmi process working-directory

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

找到缺少.git目录的工作目录的Git修订版

我有a一个没有.git目录的工作目录和b一个存储库.a是历史中期的一些修订b.

我如何找出哪些修订a符合b

我想到了一个diff从工作目录到所有修订版的一个shellcript,并选择一个具有最小(希望是0)差异的那个.

那将是有点原始的(我不知道该怎么做),有更简单的方法吗?

git revision find working-directory

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

查找VSTO Outlook Addin的安装目录和工作目录; 或任何Office Addin

我创建了一个使用库Html2Xhtml.dll(.NET)的VSTO Outlook Addin,它通过执行System.Diagnostic.Process.Start()调用另一个Html2xhtml.exe.

但是,它无法调用Html2xhtml.exe(我认为)因为即使从Visual Studio启动工作目录也是当前用户的My Documents文件夹.我无法控制Html2Xhtml.dll中的代码,所以我不能使用绝对路径; 但我想我可以在运行时更改外接程序的工作目录.

但是,如果我通过ClickOnce或其他一些我不知道用户将要选择的安装路径的方式安装它,我怎么想找到我的Html2xhtml.exe?

clickonce outlook vsto working-directory

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

Windows中当前目录和工作目录之间的区别

Windows中的当前目录和工作目录有什么区别?如何更改Notepad ++或Mozilla Firefox等应用程序的工作目录?

windows working-directory

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

向下移动工作目录中的文件夹

我试图在R中直接向下移动一个文件夹.例如,我有一个foo/bar的工作目录,我想移动到foo/bar /子文件夹:

setwd("/Users/foo/bar")
getwd()
[1] "/Users/foo/bar"
setwd("~/subfolder")
Run Code Online (Sandbox Code Playgroud)

然后我收到:

setwd中的错误("〜/ subfolder"):无法更改工作目录

我究竟做错了什么?

r working-directory

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

如何在mysql命令行工具中更改目录?

mysql在Linux下使用命令行客户端来处理MySQL数据库.如何更改当前工作目录?我没有在文档中找到它.


编辑:这不是上述问题的重复,因为OP限制使用系统的解决方案,他们只是回答如何运行系统命令,它显然从未与系统一起工作.对于如何进入cd,这不是一个好的规范问题mysql.永远不会有一个好的答案.

mysql shell working-directory

8
推荐指数
2
解决办法
8570
查看次数

Visual Studio 2017 Developer命令提示符切换当前目录

我得到了"开发人员命令提示VS 2017"命令行工具的奇怪行为.通常在Visual Studio的早期版本中,这个脚本(VsDevCmd.bat)并没有弄乱你运行它的当前目录.现在它似乎改变了它.一个简单的工作流程就是启动快捷方式"VS 2017的开发人员命令提示符",它不支持"开始"目录: 在此输入图像描述

谁有人见过这个问题?它真的很烦我,因为我曾经有一个快捷方式,并在我的源目录中启动CMD,之后使用TFS/msbuild命令.

msbuild cmd working-directory visual-studio-2017

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