find - 如何以编程方式将引号添加到 Windows 文件/目录名称 w
问题描述
我正在使用 Git for windows 来使用 linuxfind
和rm
命令查找和删除文件。命令返回的路径中的某些文件/目录名称find
带有空格,例如在“程序文件”Windows 目录的情况下。
由于文件/目录名称中的空格,如下所示运行find
andrm
命令将返回错误。如何以编程方式删除这些文件而不会收到来自命令的错误?rm
$ find /c/'program files'/ ~ -type f -iname "securecrt.vbs" 2>/dev/null
/c/program files/VanDyke Software/Clients/Scripts/securecrt.vbs
$
$ find /c/'program files'/ ~ -type f -iname "securecrt.vbs" 2>/dev/null | xargs rm
rm: cannot remove '/c/program': No such file or directory
rm: cannot remove 'files/VanDyke': No such file or directory
rm: cannot remove 'Software/Clients/Scripts/securecrt.vbs': No such file or directory
解决方案
最好使用 -exec 指令:
find /c/'program files'/ ~ -type f -iname "securecrt.vbs" -exec rm {} \;
即使文件名称中包含空格,这也确实有效。
推荐阅读
- java - 从索引 i 到 i+3 删除 ArrayList
- android - 离子离子图标在android api版本24上没有显示
- python - 将表转换为 JSON
- python - 是否可以装饰函数/方法 __get__ 方法?
- sql - 统计sql中的列记录
- flutter - Flutter - Gradle 任务 assembleDebug 失败
- swift - 无法在(UIView)上设置(borderWidth)用户定义的检查属性:...。此类不符合键值编码
- python - 与训练集损失不同,开发集的损失总是在增加
- c++ - 如何防止在省略号中使用对象
- angular - 我们如何在 app.module 和 SSR 渲染中检查 isPlatformBrowser(this.platformId)