Git删除名称中包含特殊字符的文件

时间:2015-03-26 18:21:50

标签: git bash

我试图使用git

删除一些文件
rm $(git ls-files -o --exclude=standard)

问题是文件名包含#,[],空格等符号,所以我得到了"没有这样的文件或目录"错误。我怎么处理这个?

1 个答案:

答案 0 :(得分:3)

-z选项在这里很有用。它使用空字节而不是空格分隔文件。如果你有xargs,你可以这样做:

git ls-files -o --exclude=standard -z | xargs -0 rm

或者,在bash中使用for循环

git ls-files -o --exclude=standard -z | read -r -d $'\0' -a files
for i in "${files[@]}"; do rm "$i"; done

这会将文件名读取到一个数组中,然后遍历它,逐个删除它们。

相关问题