我试图使用git
删除一些文件rm $(git ls-files -o --exclude=standard)
问题是文件名包含#,[],空格等符号,所以我得到了"没有这样的文件或目录"错误。我怎么处理这个?
答案 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
这会将文件名读取到一个数组中,然后遍历它,逐个删除它们。