MBP 的内存告急了,于是我整了一个 SSD 移动硬盘。由于我给硬盘整的格式是 ExFAT 导致将电脑中的文件移动进去之后就产生大量 .DS_Store 文件和 ._ 为开头的文件。一个一个删?我敲,好几十 G 呢。
用 rm -rf ._*
整吧,可是也不能遍历目录呀…
于是我找到了 find
和 xargs
这两个好兄弟
find . -name "._*" | xargs rm -f
删几个文件夹还没问题,但是当我开始整理我的代码目录的时候直接给我罢工了,说我的文件目录过多
xargs: rm: Argument list too long
把命令优化一下
find . -name "._*" -exec rm -f {} train \;
find . -name "._*"
是指在当前文件夹下查找名为 ._*
的文件。
xargs
命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。-i
会将 xargs
的内容赋值给 {}
。
-exec
参数后面是指执行其后面的命令,-exec
以 ;
为结尾,由于各个系统中分号的意义不同,因此用 \
进行转义,即 \;
,{}
会被 find
命令的结果替换。
这下没问题了,美滋滋。
如果使用 mv 或者 cp 命令遇到同样的问题也可以这样解决哦。