在ubuntu上找到.svn并删除

本文介绍了一种解决在删除包含空格或换行符的文件名时遇到的问题的方法。通过使用find-print0和xargs-0组合命令,可以正确处理这类文件名,避免被误识别为多个字符串导致的删除失败。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.   find . -name ".svn" | xargs rm -rfv

可以删除许多;

但是单独查询find . -name ".svn"

发现仍然有.svn文件存在

./base/cpu_ps/user/phone/picture/my photo/.svn

可以看到是因为前面的文件有空格my photo

但是这个命令如果遇到文件名里有空格或者换行符,就会出错。因为xargs识别字符段的标识是空格或者换行符,所以如果一个文件名里有空格或者换行符,xargs就会把它识别成两个字符串,自然就出错了。
这时候就需要find -print0和xargs -0
find -print0表示在find的每一个结果之后加一个NULL字符,而不是默认加一个换行符。find的默认在每一个结果后加一个’\n’,所以输出结果是一行一行的。当使用了-print0之后,就变成一行了
然后xargs -0表示xargs用NULL来作为分隔符。这样前后搭配就不会出现空格和换行符的错误了。选择NULL做分隔符,是因为一般编程语言把NULL作为字符串结束的标志,所以文件名不可能以NULL结尾,这样确保万无一失。
 

2.使用新的命令  find ./ -name ".svn" -print0 | xargs  -0 rm -rfv

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值