小编Sea*_*vak的帖子

git ls-files,如何转义文件路径中的空格?

在我们介绍.gitignore文件之前,已将整个BU​​NCH文件检入我们的git仓库.我正在尝试用以下方法清理它:

git rm --cached `git ls-files -i --exclude-from=.gitignore`
Run Code Online (Sandbox Code Playgroud)

事情是许多文件路径中都有空格.

例如:

......
Assets/Aoi Character Pack/Viewer/Resources/Aoi/Viewer BackGrounds/bg12.png.meta
Assets/Aoi Character Pack/Viewer/Resources/Aoi/Viewer BackGrounds/bg13.png.meta
Assets/Aoi Character Pack/Viewer/Resources/Aoi/Viewer BackGrounds/bg14.png.meta
Assets/Aoi Character Pack/Viewer/Resources/Aoi/Viewer BackGrounds/bg15.png.meta
Assets/Aoi Character Pack/Viewer/Resources/Aoi/Viewer BackGrounds/bg16.png.meta
Assets/Aoi Character Pack/Viewer/Resources/Aoi/Viewer BackGrounds/bg17.png.meta
Assets/Aoi Character Pack/Viewer/Resources/Aoi/Viewer BackGrounds/bg18.png.meta
.......
Run Code Online (Sandbox Code Playgroud)

在我需要摆脱的整个lotta文件中有一个完整的LOTTA空间.

我正在寻找一种优雅的方式:

  • 答:例如,用"\"来逃避空格

    Assets/Aoi\ Character Pack/Viewer/Resources/Aoi/Viewer\ BackGrounds/bg18.png.meta

-要么-

  • B:git ls-files抽出我的文件列表,所有文件都在引号之间整齐地依偎在一起.

    'Assets/Aoi Character Pack/Viewer/Resources/Aoi/Viewer BackGrounds/bg18.png.meta'

-编辑-

到目前为止我已经尝试过 git ls-files -i --exclude-from=.gitignore | sed 's/\ /\\\ /g'

虽然这很愉快地输出文件路径看起来像我期望的那样,空间被转义.....当我尝试执行时

git rm --cached `git ls-files -i --exclude-from=.gitignore | sed 's/\ /\\\ /g'` …
Run Code Online (Sandbox Code Playgroud)

git escaping git-ls-files

7
推荐指数
2
解决办法
1147
查看次数

标签 统计

escaping ×1

git ×1

git-ls-files ×1