find - linux cmd 上的警告:查找 . -删除-名称“*.swp”
问题描述
我尝试删除.swp
vim 使用以下命令创建的所有文件:
find . -delete -name "*.swp"
.
然后我的整个项目被删除了......谁能告诉我为什么?以及如何恢复项目?
如果您将命令更改为此:
find . -name "*.swp" -delete
它只会删除它匹配的文件
find . -delete -name "*.swp"
等于rm -rf *
这个问题是给程序员的警告信息。
解决方案
find
谓词和动作形成一个布尔表达式,它通过短路从左到右进行评估。
你的表情:
find . -delete -name "*.swp"
等效于 bash 表达式:
rm "$file" && [[ $file == *.swp ]]
这将删除文件,如果删除成功,它会检查名称。
将此与以下内容进行比较:
# Like: find . -name "*.swp" -delete
[[ $file == *.swp ]] && rm "$file"
在这种情况下,它会检查名称。如果检查通过,则删除该文件。这就是你想要的。
这种行为非常有用,因为它允许您编写更高级的控制流和分支:
find . -name '.git' -prune \
-o \( -name '*.xz' -exec xz -d {} \; \
-o -name '*.gz' -exec gzip -d {} \; \) \
-printf 'Successfully extracted %f\n'
此表达式将跳过任何.git
目录,xz -d
仅在 .xz 文件上运行,仅gzip -d
在 .gz 文件上运行,最后为提取的文件打印一条消息。
至于您的文件,它们已被删除。通常不可能让他们回来。您必须从备份中恢复它们,或者,如果您不顾一切,请尝试遵循适用于您的操作系统和文件系统的文件取消删除指南(但同样,这通常是不可能的)。
推荐阅读
- python-3.x - 如何使用不和谐机器人(python 3)向不和谐服务器的新成员发送 DM
- javascript - 使用无限中心模式幻灯片时,Slick JS 在左侧添加空间
- kubernetes - [ERROR CoreDNSUnsupportedPlugins]:升级k8s集群时CoreDNS Corefile中有不支持的插件。什么是不支持的?
- c# - 使用并行连接创建反向代理
- python - Bs4 AttributeError:“NoneType”对象没有属性“get_text”
- twitter-bootstrap - GitHub Pages build 找不到 bootstrap sass
- excel - 在堆积条形图中添加多条垂直线
- json - 在 Spark 中解析嵌套的 JSON 并实施自定义模式
- c - 为什么 scanf() 似乎加载的地址低于我正在写入的缓冲区的地址?
- r - 使用多个变量进行透视?