记录一次删除错误

一个文件夹下又13万个文件。


image.png

需求: 删除长的那个,留下短的

1.在一个目录下删除大量文件。

rm -rf  $(ls | awk '{if(length($0)>50){print $0}}')  

这样就是删除长度大于42的文件名。
2.但是不可以,删除命令会报错。

解放方法:

  1. 删除不了干脆把长的移动到一个文件夹下
mv $(ls | awk '{if(length($0)>42){print $0}}') newdir | head 100

长度小于42移动了。
2.删除文件

 find . -name "*.log"|xargs rm -rf "*.log"  

3.但是问题是 他会把 当前目录下 包括子目录下, 所有为*.log 的文件全部删除。
所以要指定深度

find ./ -maxdepth 1  -name "$(ls | awk '{if(length($0)>30){print $0}}')" |xargs rm -rf "*.log"

扩展

1.linux下批量删除空文件(大小等于0的文件)的方法
find . -name "*" -type f -size 0c | xargs -n 1 rm -f
find . -name "*" -type f -size 1024c | xargs -n 1 rm -f
就是删除1k大小的文件。(但注意不要用 -size 1k,这个得到的是占用空间1k,不是文件大小1k的)。

2.查询出所有的空文件夹
find -type d -empty
3.列出搜索到的文件
find   ./view/   -exec   ls   {}   \;

你可能感兴趣的:(记录一次删除错误)