Dan*_*ego 11 bash shell find xargs
我正在尝试编写一个bash命令,它将删除与特定模式匹配的所有文件 - 在这种情况下,它是所有已构建的旧vmware日志文件.
我试过这个命令:
find . -name vmware-*.log | xargs rm
Run Code Online (Sandbox Code Playgroud)
但是,当我运行该命令时,它会阻塞其名称中包含空格的所有文件夹.有没有办法格式化文件路径,以便xargs将其传递给rm引用或正确转义?
Emi*_*Sit 24
尝试使用:
find . -name vmware-*.log -print0 | xargs -0 rm
Run Code Online (Sandbox Code Playgroud)
这会导致find在每个文件名后输出一个空字符,并告诉xargs根据空字符而不是空格或其他标记来分解名称.
不要使用xargs.找不到任何帮助可以做到:
find . -name "vmware-*.log" -exec rm '{}' \;
查看-0
标志xargs
; 结合find
的-print0
你应该设置.
find . -name vmware-*.log -print0 | xargs -0 rm
Run Code Online (Sandbox Code Playgroud)