Removing files under particular conditions (number of files, file age) The 2019 Stack Overflow Developer Survey Results Are InRemove files older than 5 days in UNIX (date in file name, not timestamp)Find files which are created a certain time after or before a particular file was createdWhat's wrong with this tar command?Files greater than 1 GB and older than 6 monthsRemoving files based on date given in filenameHow to delete files if a numerical part of their name is greater than a given number?Find files older than a given file - a few hoursfind and delete files older than specific days and have specific string in filenamesHow to create a new file with required columns from different multiple files in linux?What are the differences between rm and '-delete' in find?

Falsification in Math vs Science

Is this app Icon Browser Safe/Legit?

Did Section 31 appear in Star Trek: The Next Generation?

Where to refill my bottle in India?

Right tool to dig six foot holes?

Landlord wants to switch my lease to a "Land contract" to "get back at the city"

Deal with toxic manager when you can't quit

Identify boardgame from Big movie

For what reasons would an animal species NOT cross a *horizontal* land bridge?

Button changing it's text & action. Good or terrible?

Why do some words that are not inflected have an umlaut?

Who coined the term "madman theory"?

Did 3000BC Egyptians use meteoric iron weapons?

Apparent duplicates between Haynes service instructions and MOT

Is bread bad for ducks?

Which Sci-Fi work first showed weapon of galactic-scale mass destruction?

Reference request: Oldest number theory books with (unsolved) exercises?

Geography at the pixel level

How to deal with fear of taking dependencies

Is "plugging out" electronic devices an American expression?

Can one be advised by a professor who is very far away?

Shouldn't "much" here be used instead of "more"?

Why hard-Brexiteers don't insist on a hard border to prevent illegal immigration after Brexit?

What could be the right powersource for 15 seconds lifespan disposable giant chainsaw?



Removing files under particular conditions (number of files, file age)



The 2019 Stack Overflow Developer Survey Results Are InRemove files older than 5 days in UNIX (date in file name, not timestamp)Find files which are created a certain time after or before a particular file was createdWhat's wrong with this tar command?Files greater than 1 GB and older than 6 monthsRemoving files based on date given in filenameHow to delete files if a numerical part of their name is greater than a given number?Find files older than a given file - a few hoursfind and delete files older than specific days and have specific string in filenamesHow to create a new file with required columns from different multiple files in linux?What are the differences between rm and '-delete' in find?



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








5















I want to create a shell script that will count files (1 hr older files) and if files are more than 1000, then delete all.



For read and delete I am using those command at putty



for count:



ls /tmp/ | grep 'ci_session*' | wc -l


for Delete files:



cd /tmp/
find . -name "ci_session*" -exec rm ;


#Update: for delete, i want to delete only 1 hr older files.



Here I want to add condition if total files are greater than 1000, then call delete command.










share|improve this question



















  • 1





    Why not parse ls?

    – Cyrus
    Mar 23 at 18:12











  • Greater than 1000 what? Lines long? Bytes? Or are you wanting to delete only if there are more than 1000 files?

    – Kusalananda
    Mar 23 at 18:13












  • Are you okay with "Older than 1 hour" meaning last modified greater than 1 hour ago? Unix operating systems generally don't have a concept of creation time

    – Jesse_b
    Mar 23 at 18:13












  • @Kusalananda number of files.

    – Yogesh Saroya
    Mar 23 at 18:14

















5















I want to create a shell script that will count files (1 hr older files) and if files are more than 1000, then delete all.



For read and delete I am using those command at putty



for count:



ls /tmp/ | grep 'ci_session*' | wc -l


for Delete files:



cd /tmp/
find . -name "ci_session*" -exec rm ;


#Update: for delete, i want to delete only 1 hr older files.



Here I want to add condition if total files are greater than 1000, then call delete command.










share|improve this question



















  • 1





    Why not parse ls?

    – Cyrus
    Mar 23 at 18:12











  • Greater than 1000 what? Lines long? Bytes? Or are you wanting to delete only if there are more than 1000 files?

    – Kusalananda
    Mar 23 at 18:13












  • Are you okay with "Older than 1 hour" meaning last modified greater than 1 hour ago? Unix operating systems generally don't have a concept of creation time

    – Jesse_b
    Mar 23 at 18:13












  • @Kusalananda number of files.

    – Yogesh Saroya
    Mar 23 at 18:14













5












5








5


1






I want to create a shell script that will count files (1 hr older files) and if files are more than 1000, then delete all.



For read and delete I am using those command at putty



for count:



ls /tmp/ | grep 'ci_session*' | wc -l


for Delete files:



cd /tmp/
find . -name "ci_session*" -exec rm ;


#Update: for delete, i want to delete only 1 hr older files.



Here I want to add condition if total files are greater than 1000, then call delete command.










share|improve this question
















I want to create a shell script that will count files (1 hr older files) and if files are more than 1000, then delete all.



For read and delete I am using those command at putty



for count:



ls /tmp/ | grep 'ci_session*' | wc -l


for Delete files:



cd /tmp/
find . -name "ci_session*" -exec rm ;


#Update: for delete, i want to delete only 1 hr older files.



Here I want to add condition if total files are greater than 1000, then call delete command.







linux bash find






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 23 at 18:43









Kusalananda

141k17262438




141k17262438










asked Mar 23 at 18:01









Yogesh SaroyaYogesh Saroya

1265




1265







  • 1





    Why not parse ls?

    – Cyrus
    Mar 23 at 18:12











  • Greater than 1000 what? Lines long? Bytes? Or are you wanting to delete only if there are more than 1000 files?

    – Kusalananda
    Mar 23 at 18:13












  • Are you okay with "Older than 1 hour" meaning last modified greater than 1 hour ago? Unix operating systems generally don't have a concept of creation time

    – Jesse_b
    Mar 23 at 18:13












  • @Kusalananda number of files.

    – Yogesh Saroya
    Mar 23 at 18:14












  • 1





    Why not parse ls?

    – Cyrus
    Mar 23 at 18:12











  • Greater than 1000 what? Lines long? Bytes? Or are you wanting to delete only if there are more than 1000 files?

    – Kusalananda
    Mar 23 at 18:13












  • Are you okay with "Older than 1 hour" meaning last modified greater than 1 hour ago? Unix operating systems generally don't have a concept of creation time

    – Jesse_b
    Mar 23 at 18:13












  • @Kusalananda number of files.

    – Yogesh Saroya
    Mar 23 at 18:14







1




1





Why not parse ls?

– Cyrus
Mar 23 at 18:12





Why not parse ls?

– Cyrus
Mar 23 at 18:12













Greater than 1000 what? Lines long? Bytes? Or are you wanting to delete only if there are more than 1000 files?

– Kusalananda
Mar 23 at 18:13






Greater than 1000 what? Lines long? Bytes? Or are you wanting to delete only if there are more than 1000 files?

– Kusalananda
Mar 23 at 18:13














Are you okay with "Older than 1 hour" meaning last modified greater than 1 hour ago? Unix operating systems generally don't have a concept of creation time

– Jesse_b
Mar 23 at 18:13






Are you okay with "Older than 1 hour" meaning last modified greater than 1 hour ago? Unix operating systems generally don't have a concept of creation time

– Jesse_b
Mar 23 at 18:13














@Kusalananda number of files.

– Yogesh Saroya
Mar 23 at 18:14





@Kusalananda number of files.

– Yogesh Saroya
Mar 23 at 18:14










2 Answers
2






active

oldest

votes


















7














I interpreted your question as "How may I count the files, and if there are more than 1000, delete the ones that are older than one hour?".



Counting the names matching /tmp/ci_session* and doing something when there's more than 1000 of them:



set -- /tmp/ci_session*
if [ "$#" -gt 1000 ]; then
# something
fi


This sets the positional parameters to the names matching the pattern. The special variable $# then contains the number of positional parameters.



Deleting the files matching /tmp/ci_session* if their last modified time is more than an hour ago:



find /tmp -maxdepth 1 -type f -name 'ci_session*' -mmin +60 -delete


Taken together:



#!/bin/sh

set -- /tmp/ci_session*
if [ "$#" -gt 1000 ]; then
find /tmp -maxdepth 1 -type f -name 'ci_session*' -mmin +60 -delete
fi


The only thing to note here is that the count will be of any name matching the pattern (even of directory names, if there are any), while the find command will restrict the deletion to only regular files (i.e. not directories).






share|improve this answer

























  • I thought set would surely fail with "argument list too long" at some point, but no. I guess because set is a built-in?

    – l0b0
    Mar 23 at 21:57












  • @l0b0 Exactly. Built-in utilities do not have any restrictions like that, and set is furthermore a special built-in utility, which means it needs to always be built into the shell (or it would not be able to set positional parameters nor shell options).

    – Kusalananda
    Mar 23 at 22:03












  • I am getting this error. /bin/bash: /home/yogeshs/public_html/cleanup.sh: Permission denied i added sh file at public_html folder then added cron job (* * * * * /home/yogeshs/public_html/cleanup.sh )

    – Yogesh Saroya
    Mar 24 at 4:54












  • @Kusalananda pls help getting Permission denied

    – Yogesh Saroya
    Mar 24 at 5:09











  • @YogeshSaroya Either run the script with sh scriptname or make it executable with chmod +x scriptname and run it as you're trying to now.

    – Kusalananda
    Mar 24 at 7:03


















5














As long as your find has an -mmin option you can do:



Using a shell script:



#!/bin/sh

files_dir=/tmp
file_count=$(find "$files_dir" -name 'ci_session*' -mmin 60 -exec echo x ; | wc -l)

if [ "$file_count" -gt 1000 ]; then
find "$files_dir" -name 'ci_session*' -mmin 60 -exec rm ;
fi


file_count will be set to the number of files found in the specified directory matching the pattern.



If file_count is greater than 1000 we will run find again and delete those files.




Using bash we can eliminate the second call to find with an array:



#!/bin/bash

files_dir=/tmp
mapfile -t files < <(find "$files_dir" -name 'ci_session*' -mmin 60)

if (($#files[@]>1000)); then
rm "$files[@]"
fi


Note: depending on how many files you expect to have the bash solution may run into your command line argument limit.






share|improve this answer

























  • could you please update delete command to delete only 1hr older files ?

    – Yogesh Saroya
    Mar 23 at 18:09











Your Answer








StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f508198%2fremoving-files-under-particular-conditions-number-of-files-file-age%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









7














I interpreted your question as "How may I count the files, and if there are more than 1000, delete the ones that are older than one hour?".



Counting the names matching /tmp/ci_session* and doing something when there's more than 1000 of them:



set -- /tmp/ci_session*
if [ "$#" -gt 1000 ]; then
# something
fi


This sets the positional parameters to the names matching the pattern. The special variable $# then contains the number of positional parameters.



Deleting the files matching /tmp/ci_session* if their last modified time is more than an hour ago:



find /tmp -maxdepth 1 -type f -name 'ci_session*' -mmin +60 -delete


Taken together:



#!/bin/sh

set -- /tmp/ci_session*
if [ "$#" -gt 1000 ]; then
find /tmp -maxdepth 1 -type f -name 'ci_session*' -mmin +60 -delete
fi


The only thing to note here is that the count will be of any name matching the pattern (even of directory names, if there are any), while the find command will restrict the deletion to only regular files (i.e. not directories).






share|improve this answer

























  • I thought set would surely fail with "argument list too long" at some point, but no. I guess because set is a built-in?

    – l0b0
    Mar 23 at 21:57












  • @l0b0 Exactly. Built-in utilities do not have any restrictions like that, and set is furthermore a special built-in utility, which means it needs to always be built into the shell (or it would not be able to set positional parameters nor shell options).

    – Kusalananda
    Mar 23 at 22:03












  • I am getting this error. /bin/bash: /home/yogeshs/public_html/cleanup.sh: Permission denied i added sh file at public_html folder then added cron job (* * * * * /home/yogeshs/public_html/cleanup.sh )

    – Yogesh Saroya
    Mar 24 at 4:54












  • @Kusalananda pls help getting Permission denied

    – Yogesh Saroya
    Mar 24 at 5:09











  • @YogeshSaroya Either run the script with sh scriptname or make it executable with chmod +x scriptname and run it as you're trying to now.

    – Kusalananda
    Mar 24 at 7:03















7














I interpreted your question as "How may I count the files, and if there are more than 1000, delete the ones that are older than one hour?".



Counting the names matching /tmp/ci_session* and doing something when there's more than 1000 of them:



set -- /tmp/ci_session*
if [ "$#" -gt 1000 ]; then
# something
fi


This sets the positional parameters to the names matching the pattern. The special variable $# then contains the number of positional parameters.



Deleting the files matching /tmp/ci_session* if their last modified time is more than an hour ago:



find /tmp -maxdepth 1 -type f -name 'ci_session*' -mmin +60 -delete


Taken together:



#!/bin/sh

set -- /tmp/ci_session*
if [ "$#" -gt 1000 ]; then
find /tmp -maxdepth 1 -type f -name 'ci_session*' -mmin +60 -delete
fi


The only thing to note here is that the count will be of any name matching the pattern (even of directory names, if there are any), while the find command will restrict the deletion to only regular files (i.e. not directories).






share|improve this answer

























  • I thought set would surely fail with "argument list too long" at some point, but no. I guess because set is a built-in?

    – l0b0
    Mar 23 at 21:57












  • @l0b0 Exactly. Built-in utilities do not have any restrictions like that, and set is furthermore a special built-in utility, which means it needs to always be built into the shell (or it would not be able to set positional parameters nor shell options).

    – Kusalananda
    Mar 23 at 22:03












  • I am getting this error. /bin/bash: /home/yogeshs/public_html/cleanup.sh: Permission denied i added sh file at public_html folder then added cron job (* * * * * /home/yogeshs/public_html/cleanup.sh )

    – Yogesh Saroya
    Mar 24 at 4:54












  • @Kusalananda pls help getting Permission denied

    – Yogesh Saroya
    Mar 24 at 5:09











  • @YogeshSaroya Either run the script with sh scriptname or make it executable with chmod +x scriptname and run it as you're trying to now.

    – Kusalananda
    Mar 24 at 7:03













7












7








7







I interpreted your question as "How may I count the files, and if there are more than 1000, delete the ones that are older than one hour?".



Counting the names matching /tmp/ci_session* and doing something when there's more than 1000 of them:



set -- /tmp/ci_session*
if [ "$#" -gt 1000 ]; then
# something
fi


This sets the positional parameters to the names matching the pattern. The special variable $# then contains the number of positional parameters.



Deleting the files matching /tmp/ci_session* if their last modified time is more than an hour ago:



find /tmp -maxdepth 1 -type f -name 'ci_session*' -mmin +60 -delete


Taken together:



#!/bin/sh

set -- /tmp/ci_session*
if [ "$#" -gt 1000 ]; then
find /tmp -maxdepth 1 -type f -name 'ci_session*' -mmin +60 -delete
fi


The only thing to note here is that the count will be of any name matching the pattern (even of directory names, if there are any), while the find command will restrict the deletion to only regular files (i.e. not directories).






share|improve this answer















I interpreted your question as "How may I count the files, and if there are more than 1000, delete the ones that are older than one hour?".



Counting the names matching /tmp/ci_session* and doing something when there's more than 1000 of them:



set -- /tmp/ci_session*
if [ "$#" -gt 1000 ]; then
# something
fi


This sets the positional parameters to the names matching the pattern. The special variable $# then contains the number of positional parameters.



Deleting the files matching /tmp/ci_session* if their last modified time is more than an hour ago:



find /tmp -maxdepth 1 -type f -name 'ci_session*' -mmin +60 -delete


Taken together:



#!/bin/sh

set -- /tmp/ci_session*
if [ "$#" -gt 1000 ]; then
find /tmp -maxdepth 1 -type f -name 'ci_session*' -mmin +60 -delete
fi


The only thing to note here is that the count will be of any name matching the pattern (even of directory names, if there are any), while the find command will restrict the deletion to only regular files (i.e. not directories).







share|improve this answer














share|improve this answer



share|improve this answer








edited Mar 23 at 18:44

























answered Mar 23 at 18:24









KusalanandaKusalananda

141k17262438




141k17262438












  • I thought set would surely fail with "argument list too long" at some point, but no. I guess because set is a built-in?

    – l0b0
    Mar 23 at 21:57












  • @l0b0 Exactly. Built-in utilities do not have any restrictions like that, and set is furthermore a special built-in utility, which means it needs to always be built into the shell (or it would not be able to set positional parameters nor shell options).

    – Kusalananda
    Mar 23 at 22:03












  • I am getting this error. /bin/bash: /home/yogeshs/public_html/cleanup.sh: Permission denied i added sh file at public_html folder then added cron job (* * * * * /home/yogeshs/public_html/cleanup.sh )

    – Yogesh Saroya
    Mar 24 at 4:54












  • @Kusalananda pls help getting Permission denied

    – Yogesh Saroya
    Mar 24 at 5:09











  • @YogeshSaroya Either run the script with sh scriptname or make it executable with chmod +x scriptname and run it as you're trying to now.

    – Kusalananda
    Mar 24 at 7:03

















  • I thought set would surely fail with "argument list too long" at some point, but no. I guess because set is a built-in?

    – l0b0
    Mar 23 at 21:57












  • @l0b0 Exactly. Built-in utilities do not have any restrictions like that, and set is furthermore a special built-in utility, which means it needs to always be built into the shell (or it would not be able to set positional parameters nor shell options).

    – Kusalananda
    Mar 23 at 22:03












  • I am getting this error. /bin/bash: /home/yogeshs/public_html/cleanup.sh: Permission denied i added sh file at public_html folder then added cron job (* * * * * /home/yogeshs/public_html/cleanup.sh )

    – Yogesh Saroya
    Mar 24 at 4:54












  • @Kusalananda pls help getting Permission denied

    – Yogesh Saroya
    Mar 24 at 5:09











  • @YogeshSaroya Either run the script with sh scriptname or make it executable with chmod +x scriptname and run it as you're trying to now.

    – Kusalananda
    Mar 24 at 7:03
















I thought set would surely fail with "argument list too long" at some point, but no. I guess because set is a built-in?

– l0b0
Mar 23 at 21:57






I thought set would surely fail with "argument list too long" at some point, but no. I guess because set is a built-in?

– l0b0
Mar 23 at 21:57














@l0b0 Exactly. Built-in utilities do not have any restrictions like that, and set is furthermore a special built-in utility, which means it needs to always be built into the shell (or it would not be able to set positional parameters nor shell options).

– Kusalananda
Mar 23 at 22:03






@l0b0 Exactly. Built-in utilities do not have any restrictions like that, and set is furthermore a special built-in utility, which means it needs to always be built into the shell (or it would not be able to set positional parameters nor shell options).

– Kusalananda
Mar 23 at 22:03














I am getting this error. /bin/bash: /home/yogeshs/public_html/cleanup.sh: Permission denied i added sh file at public_html folder then added cron job (* * * * * /home/yogeshs/public_html/cleanup.sh )

– Yogesh Saroya
Mar 24 at 4:54






I am getting this error. /bin/bash: /home/yogeshs/public_html/cleanup.sh: Permission denied i added sh file at public_html folder then added cron job (* * * * * /home/yogeshs/public_html/cleanup.sh )

– Yogesh Saroya
Mar 24 at 4:54














@Kusalananda pls help getting Permission denied

– Yogesh Saroya
Mar 24 at 5:09





@Kusalananda pls help getting Permission denied

– Yogesh Saroya
Mar 24 at 5:09













@YogeshSaroya Either run the script with sh scriptname or make it executable with chmod +x scriptname and run it as you're trying to now.

– Kusalananda
Mar 24 at 7:03





@YogeshSaroya Either run the script with sh scriptname or make it executable with chmod +x scriptname and run it as you're trying to now.

– Kusalananda
Mar 24 at 7:03













5














As long as your find has an -mmin option you can do:



Using a shell script:



#!/bin/sh

files_dir=/tmp
file_count=$(find "$files_dir" -name 'ci_session*' -mmin 60 -exec echo x ; | wc -l)

if [ "$file_count" -gt 1000 ]; then
find "$files_dir" -name 'ci_session*' -mmin 60 -exec rm ;
fi


file_count will be set to the number of files found in the specified directory matching the pattern.



If file_count is greater than 1000 we will run find again and delete those files.




Using bash we can eliminate the second call to find with an array:



#!/bin/bash

files_dir=/tmp
mapfile -t files < <(find "$files_dir" -name 'ci_session*' -mmin 60)

if (($#files[@]>1000)); then
rm "$files[@]"
fi


Note: depending on how many files you expect to have the bash solution may run into your command line argument limit.






share|improve this answer

























  • could you please update delete command to delete only 1hr older files ?

    – Yogesh Saroya
    Mar 23 at 18:09















5














As long as your find has an -mmin option you can do:



Using a shell script:



#!/bin/sh

files_dir=/tmp
file_count=$(find "$files_dir" -name 'ci_session*' -mmin 60 -exec echo x ; | wc -l)

if [ "$file_count" -gt 1000 ]; then
find "$files_dir" -name 'ci_session*' -mmin 60 -exec rm ;
fi


file_count will be set to the number of files found in the specified directory matching the pattern.



If file_count is greater than 1000 we will run find again and delete those files.




Using bash we can eliminate the second call to find with an array:



#!/bin/bash

files_dir=/tmp
mapfile -t files < <(find "$files_dir" -name 'ci_session*' -mmin 60)

if (($#files[@]>1000)); then
rm "$files[@]"
fi


Note: depending on how many files you expect to have the bash solution may run into your command line argument limit.






share|improve this answer

























  • could you please update delete command to delete only 1hr older files ?

    – Yogesh Saroya
    Mar 23 at 18:09













5












5








5







As long as your find has an -mmin option you can do:



Using a shell script:



#!/bin/sh

files_dir=/tmp
file_count=$(find "$files_dir" -name 'ci_session*' -mmin 60 -exec echo x ; | wc -l)

if [ "$file_count" -gt 1000 ]; then
find "$files_dir" -name 'ci_session*' -mmin 60 -exec rm ;
fi


file_count will be set to the number of files found in the specified directory matching the pattern.



If file_count is greater than 1000 we will run find again and delete those files.




Using bash we can eliminate the second call to find with an array:



#!/bin/bash

files_dir=/tmp
mapfile -t files < <(find "$files_dir" -name 'ci_session*' -mmin 60)

if (($#files[@]>1000)); then
rm "$files[@]"
fi


Note: depending on how many files you expect to have the bash solution may run into your command line argument limit.






share|improve this answer















As long as your find has an -mmin option you can do:



Using a shell script:



#!/bin/sh

files_dir=/tmp
file_count=$(find "$files_dir" -name 'ci_session*' -mmin 60 -exec echo x ; | wc -l)

if [ "$file_count" -gt 1000 ]; then
find "$files_dir" -name 'ci_session*' -mmin 60 -exec rm ;
fi


file_count will be set to the number of files found in the specified directory matching the pattern.



If file_count is greater than 1000 we will run find again and delete those files.




Using bash we can eliminate the second call to find with an array:



#!/bin/bash

files_dir=/tmp
mapfile -t files < <(find "$files_dir" -name 'ci_session*' -mmin 60)

if (($#files[@]>1000)); then
rm "$files[@]"
fi


Note: depending on how many files you expect to have the bash solution may run into your command line argument limit.







share|improve this answer














share|improve this answer



share|improve this answer








edited Mar 23 at 18:22

























answered Mar 23 at 18:08









Jesse_bJesse_b

14.4k33574




14.4k33574












  • could you please update delete command to delete only 1hr older files ?

    – Yogesh Saroya
    Mar 23 at 18:09

















  • could you please update delete command to delete only 1hr older files ?

    – Yogesh Saroya
    Mar 23 at 18:09
















could you please update delete command to delete only 1hr older files ?

– Yogesh Saroya
Mar 23 at 18:09





could you please update delete command to delete only 1hr older files ?

– Yogesh Saroya
Mar 23 at 18:09

















draft saved

draft discarded
















































Thanks for contributing an answer to Unix & Linux Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f508198%2fremoving-files-under-particular-conditions-number-of-files-file-age%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Solar Wings Breeze Design and development Specifications (Breeze) References Navigation menu1368-485X"Hang glider: Breeze (Solar Wings)"e

Kathakali Contents Etymology and nomenclature History Repertoire Songs and musical instruments Traditional plays Styles: Sampradayam Training centers and awards Relationship to other dance forms See also Notes References External links Navigation menueThe Illustrated Encyclopedia of Hinduism: A-MSouth Asian Folklore: An EncyclopediaRoutledge International Encyclopedia of Women: Global Women's Issues and KnowledgeKathakali Dance-drama: Where Gods and Demons Come to PlayKathakali Dance-drama: Where Gods and Demons Come to PlayKathakali Dance-drama: Where Gods and Demons Come to Play10.1353/atj.2005.0004The Illustrated Encyclopedia of Hinduism: A-MEncyclopedia of HinduismKathakali Dance-drama: Where Gods and Demons Come to PlaySonic Liturgy: Ritual and Music in Hindu Tradition"The Mirror of Gesture"Kathakali Dance-drama: Where Gods and Demons Come to Play"Kathakali"Indian Theatre: Traditions of PerformanceIndian Theatre: Traditions of PerformanceIndian Theatre: Traditions of PerformanceIndian Theatre: Traditions of PerformanceMedieval Indian Literature: An AnthologyThe Oxford Companion to Indian TheatreSouth Asian Folklore: An Encyclopedia : Afghanistan, Bangladesh, India, Nepal, Pakistan, Sri LankaThe Rise of Performance Studies: Rethinking Richard Schechner's Broad SpectrumIndian Theatre: Traditions of PerformanceModern Asian Theatre and Performance 1900-2000Critical Theory and PerformanceBetween Theater and AnthropologyKathakali603847011Indian Theatre: Traditions of PerformanceIndian Theatre: Traditions of PerformanceIndian Theatre: Traditions of PerformanceBetween Theater and AnthropologyBetween Theater and AnthropologyNambeesan Smaraka AwardsArchivedThe Cambridge Guide to TheatreRoutledge International Encyclopedia of Women: Global Women's Issues and KnowledgeThe Garland Encyclopedia of World Music: South Asia : the Indian subcontinentThe Ethos of Noh: Actors and Their Art10.2307/1145740By Means of Performance: Intercultural Studies of Theatre and Ritual10.1017/s204912550000100xReconceiving the Renaissance: A Critical ReaderPerformance TheoryListening to Theatre: The Aural Dimension of Beijing Opera10.2307/1146013Kathakali: The Art of the Non-WorldlyOn KathakaliKathakali, the dance theatreThe Kathakali Complex: Performance & StructureKathakali Dance-Drama: Where Gods and Demons Come to Play10.1093/obo/9780195399318-0071Drama and Ritual of Early Hinduism"In the Shadow of Hollywood Orientalism: Authentic East Indian Dancing"10.1080/08949460490274013Sanskrit Play Production in Ancient IndiaIndian Music: History and StructureBharata, the Nāṭyaśāstra233639306Table of Contents2238067286469807Dance In Indian Painting10.2307/32047833204783Kathakali Dance-Theatre: A Visual Narrative of Sacred Indian MimeIndian Classical Dance: The Renaissance and BeyondKathakali: an indigenous art-form of Keralaeee

Method to test if a number is a perfect power? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 00:00UTC (8:00pm US/Eastern)Detecting perfect squares faster than by extracting square rooteffective way to get the integer sequence A181392 from oeisA rarely mentioned fact about perfect powersHow many numbers such $n$ are there that $n<100,lfloorsqrtn rfloor mid n$Check perfect squareness by modulo division against multiple basesFor what pair of integers $(a,b)$ is $3^a + 7^b$ a perfect square.Do there exist any positive integers $n$ such that $lfloore^nrfloor$ is a perfect power? What is the probability that one exists?finding perfect power factors of an integerProve that the sequence contains a perfect square for any natural number $m $ in the domain of $f$ .Counting Perfect Powers