Results 1 to 6 of 6
Hi, I would like a command that will remove a file that is below, say 100kb. Thank you. I think I have to use the find command but im new ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
- 11-28-2005 #1Just Joined!
- Join Date
- Aug 2004
- Posts
- 62
Removing File By Size
Hi, I would like a command that will remove a file that is below, say 100kb. Thank you. I think I have to use the find command but im new to that. Thanks.
Here is what I have so far:
This will delete any file that is 50kb exactly. I need to delete any file that is 50kb or smaller. Should I create a loop that walks through every kb (1.00 - 50.00) and deletes them? This seems like it would take forever since I would have to loop through two decimal places as well.Code:find . -size 50k -exec rm "{}" \;
- 11-28-2005 #2Linux Engineer
- Join Date
- Jan 2005
- Location
- Chicago (USA)
- Posts
- 1,028
This sounds like a homework question...
I'll give you some hints: ls -l and cut.
- 11-28-2005 #3Just Joined!
- Join Date
- Aug 2004
- Posts
- 62
Actually its not a homework question.
Heres what I came up with:
Code:#!/bin/bash current_file=0 file_max=40 cd test let "file_max += 1" #Adds one more because it checks for 0kb files as well. while [ "$current_file" != "$file_max" ] do echo "$current_file " find . -size $current_file -exec rm "{}" \; let "current_file += 1" done echo exit 0
- 11-28-2005 #4Just Joined!
- Join Date
- Aug 2004
- Posts
- 62
BUMP
My above code works for files that are exactly 1.0 2.0 3.0 4.0 5.0kb, but not for 1.1 1.2. 1.3, etc. How can I fix that?
Ugh all that looping was useless. find . -size -45 -exec rm "{}" \; works just as well (Notice the - before 45.) But I still can figure out how to get files that have decimal places.
- 11-28-2005 #5Linux Newbie
- Join Date
- Jul 2005
- Location
- Turn Around
- Posts
- 202
1.) Is this homework?
2.) Bash will only work with integers.
3.) Your script might want to use < <= >= or > for your purpose instead of != in your while loop.
- 11-28-2005 #6Just Joined!
- Join Date
- Aug 2004
- Posts
- 62
1) No, I am not trying to have you guys do my homework. I am in High School, and most High Schools I know dont offer a Linux class.
2) Good to know.
3) Yes well I found that "find . -size -45 -exec rm "{}" \;" works just as well without all the useless looping. The thing is, it dosent work exactly how I want it. If you look in the man pages of find, it states that the -size option dosent search for indirect blocks. Meaning, it will only find file sizes that are exact. (E.G. It will find 5.00kb but not 5.01kb.)
How can I remedy this?


Reply With Quote
