git - 为什么我不能使用 git rm 删除除特定文件类型之外的所有文件?
问题描述
我想删除当前目录及其子目录中不属于文件类型的所有文件*.scss
。
但是,我不断收到错误消息:
$ git rm -r !(*.scss)
#=> zsh: number expected
这样做的正确方法是什么?为什么命令失败?
解决方案
!
是 shell 的特殊字符,它操纵命令历史记录,因此您需要使用反斜杠或引号对其进行筛选。你还需要冒号。尝试ls-files
一下,比如
git ls-files \* ':!*.scss'
然后删除文件
git rm \* ':!*.scss'
另请注意,git rm -r
递归删除目录很有可能删除*.scss
其中的文件。
推荐阅读
- mysql - 根据mysql表中的另一列从表中的两列中查找重复项
- c++ - C++ 从文本文件中读取
- c - C 中计算器程序的不准确答案
- google-apps-script - 数组问题中的 indexOf 元素 [谷歌应用脚本]
- python - 熊猫在合并期间总结一列
- java - 将文件/文件从远程目录移动到另一个 Spring Integration SFTP Outbound Gateway Java Config/Java DSL
- typeorm - 如何以正确的方式使用 TypeORM 进行迁移?
- npm - Azure Pipelines 缓存任务和 ng 无法识别
- c - C 检测用户何时输入
- c - 如何在 C 中从我的 LKM 运行 .py 文件