一個(gè)文件夾下又13萬(wàn)個(gè)文件。
image.png
需求: 刪除長(zhǎng)的那個(gè)佳遂,留下短的
1.在一個(gè)目錄下刪除大量文件营袜。
rm -rf $(ls | awk '{if(length($0)>50){print $0}}')
這樣就是刪除長(zhǎng)度大于42的文件名。
2.但是不可以丑罪,刪除命令會(huì)報(bào)錯(cuò)荚板。
解放方法:
- 刪除不了干脆把長(zhǎng)的移動(dòng)到一個(gè)文件夾下
mv $(ls | awk '{if(length($0)>42){print $0}}') newdir | head 100
長(zhǎng)度小于42移動(dòng)了。
2.刪除文件
find . -name "*.log"|xargs rm -rf "*.log"
3.但是問(wèn)題是 他會(huì)把 當(dāng)前目錄下 包括子目錄下吩屹, 所有為*.log 的文件全部刪除跪另。
所以要指定深度
find ./ -maxdepth 1 -name "$(ls | awk '{if(length($0)>30){print $0}}')" |xargs rm -rf "*.log"
擴(kuò)展
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祟峦,這個(gè)得到的是占用空間1k罚斗,不是文件大小1k的)。
2.查詢(xún)出所有的空文件夾
find -type d -empty
3.列出搜索到的文件
find ./view/ -exec ls {} \;