将 windows 文件名更改为 bash 文件名
Posted
技术标签:
【中文标题】将 windows 文件名更改为 bash 文件名【英文标题】:change windows filenames to bash filenames 【发布时间】:2014-07-23 18:34:34 【问题描述】:我在 Windows 上使用 gitbash 作为我的主控制台。通常我想从资源管理器中复制文件名并将其用于 git 命令,这通常不起作用,因为 git 有时需要 /c/directory/directory/filename 形式的文件名,而不是 c:\directory\directory\filename。
我通常必须手动编辑文件名/路径以使其格式正确,如果文件的目录很深,这很烦人。
我写了一个 sed 命令来修改字符串为正确的格式:
sed 's:\\:/:g' | sed 's:\(.\)::/\1:g'
有没有办法让我把它变成一个函数或其他东西,这样我就可以做类似...
git add convert("c:\blah\blah\myfile.txt")
实际运行的是
git add /c/blah/blah/myfile.txt
【问题讨论】:
Windows PATH to posix path conversion in bash的可能重复 这不是那个问题的重复,因为我正在寻求一种以一种很好的方式从 bash 调用 sed 命令的方法。我不是要求像那个问题那样的 sed 命令 Opposite of this - convert bash path to windows 【参考方案1】:一种方式:
function git_add
git add "$(exec sed 's|\\|/|g; s|\(.\):|/\1|g' <<< "$1")"
然后做:
git_add "c:\blah\blah\myfile.txt"
另一种方式:
function convert
sed 's|\\|/|g; s|\(.\):|/\1|g' <<< "$1"
git add "$(convert "c:\blah\blah\myfile.txt")"
【讨论】:
我想在命令行上做所有事情,而不仅仅是 git,所以想要一些更通用的东西【参考方案2】:cygpath 在 gitbash 发行版中,所以我使用 cygpath -u "c:\foo.xml"
我目前在 Win10 上运行 gitbash 2.31.1
【讨论】:
以上是关于将 windows 文件名更改为 bash 文件名的主要内容,如果未能解决你的问题,请参考以下文章