Deleting files older than 30 days based on filename as dateRemove files older than 5 days in UNIX (date in file name, not timestamp)Deleting many files except one typeBatch rename image files by age plus add date and variable to filenamefind and delete files older than specific days and have specific string in filenamesCommand that deletes all old files, folders and sub-foldersDelete sub-directories with YYYYMMDD in name older than N dayssynchronise with remote machine via http, and delete older filesMove files that have the same case-insensitive filenameFind and delete folders within directory that are older than x daysCopy files according the filename containing a future date in a specific format
Should I simplify my writing in a foreign country?
What are the advantages of luxury car brands like Acura/Lexus over their sibling non-luxury brands Honda/Toyota?
Should I mention being denied entry to UK due to a confusion in my Visa and Ticket bookings?
Copy previous line to current line from text file
Are there terms in German for different skull shapes?
Checking if two expressions are related
Is Benjen dead?
Can you use "едать" and "игрывать" in the present and future tenses?
Does "Captain Marvel" contain spoilers for "Avengers: Infinity War"?
Notation: What does the tilde bellow of the Expectation mean?
Is there a word that describes the unjustified use of a more complex word?
Will 700 more planes a day fly because of the Heathrow expansion?
How long would it take for people to notice a mass disappearance?
Adding command shortcuts to /bin
How to pass hash as password to ssh server
What is the closest airport to the center of the city it serves?
What to use instead of cling film to wrap pastry
Can there be a single technologically advanced nation, in a continent full of non-technologically advanced nations?
When an imagined world resembles or has similarities with a famous world
Agena docking and RCS Brakes in First Man
What is a common way to tell if an academic is "above average," or outstanding in their field? Is their h-index (Hirsh index) one of them?
How can Internet speed be 10 times slower without a router than when using the same connection with a router?
Dangerous workplace travelling
Is there an age requirement to play in Adventurers League?
Deleting files older than 30 days based on filename as date
Remove files older than 5 days in UNIX (date in file name, not timestamp)Deleting many files except one typeBatch rename image files by age plus add date and variable to filenamefind and delete files older than specific days and have specific string in filenamesCommand that deletes all old files, folders and sub-foldersDelete sub-directories with YYYYMMDD in name older than N dayssynchronise with remote machine via http, and delete older filesMove files that have the same case-insensitive filenameFind and delete folders within directory that are older than x daysCopy files according the filename containing a future date in a specific format
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
If I have a folder of files with their filenames as the date they were created:
2019_04_30.txt
2019_04_15.txt
2019_04_10.txt
2019_02_20.txt
2019_01_05.txt
How would I compare the files names against todays current date
$ date "+%Y_%m_%d"
>>> 2019_04_30
If the file names date is greater than 30 days then delete it. I would expect to end up with
2019_04_30.txt
2019_04_15.txt
2019_04_10.txt
I don't have to follow this naming convention, I could use a more suitable date format.
linux bash filenames date rm
add a comment |
If I have a folder of files with their filenames as the date they were created:
2019_04_30.txt
2019_04_15.txt
2019_04_10.txt
2019_02_20.txt
2019_01_05.txt
How would I compare the files names against todays current date
$ date "+%Y_%m_%d"
>>> 2019_04_30
If the file names date is greater than 30 days then delete it. I would expect to end up with
2019_04_30.txt
2019_04_15.txt
2019_04_10.txt
I don't have to follow this naming convention, I could use a more suitable date format.
linux bash filenames date rm
You can use YYYY-MM-DD for your filenames, it would help when using "date" functions then
– darxmurf
Apr 30 at 11:09
add a comment |
If I have a folder of files with their filenames as the date they were created:
2019_04_30.txt
2019_04_15.txt
2019_04_10.txt
2019_02_20.txt
2019_01_05.txt
How would I compare the files names against todays current date
$ date "+%Y_%m_%d"
>>> 2019_04_30
If the file names date is greater than 30 days then delete it. I would expect to end up with
2019_04_30.txt
2019_04_15.txt
2019_04_10.txt
I don't have to follow this naming convention, I could use a more suitable date format.
linux bash filenames date rm
If I have a folder of files with their filenames as the date they were created:
2019_04_30.txt
2019_04_15.txt
2019_04_10.txt
2019_02_20.txt
2019_01_05.txt
How would I compare the files names against todays current date
$ date "+%Y_%m_%d"
>>> 2019_04_30
If the file names date is greater than 30 days then delete it. I would expect to end up with
2019_04_30.txt
2019_04_15.txt
2019_04_10.txt
I don't have to follow this naming convention, I could use a more suitable date format.
linux bash filenames date rm
linux bash filenames date rm
edited Apr 30 at 14:01
Rui F Ribeiro
42.6k1486146
42.6k1486146
asked Apr 30 at 10:50
Ari VictorAri Victor
1504
1504
You can use YYYY-MM-DD for your filenames, it would help when using "date" functions then
– darxmurf
Apr 30 at 11:09
add a comment |
You can use YYYY-MM-DD for your filenames, it would help when using "date" functions then
– darxmurf
Apr 30 at 11:09
You can use YYYY-MM-DD for your filenames, it would help when using "date" functions then
– darxmurf
Apr 30 at 11:09
You can use YYYY-MM-DD for your filenames, it would help when using "date" functions then
– darxmurf
Apr 30 at 11:09
add a comment |
2 Answers
2
active
oldest
votes
Here is a bash solution.
f30days=$(date +%s --date="-30 days")
for file in 20*.txt; do
fdate=$(echo $file | tr _ -)
fsec=$(date +%s --date=$fdate/.txt/)
if [[ $fsec -lt $f30days ]]; then
echo "rm $file"
fi
done
I ended it with "echo rm $file
" instead of really deleting your files, this will test the result before.
add a comment |
With zsh
:
zmodload zsh/datetime
strftime -s start '%Y_%m_%d.txt' $((EPOCHSECONDS - 30*86400))
echo -E rm -i 2*.txt(e:'[[ $REPLY > $start ]]':)
Remove the echo -E
when happy.
On a GNU system and with the GNU shell (bash
), you could do something approaching with:
start=$(date -d '30 days ago' +%Y_%m_%d.txt)
list=()
shopt -s nullglob
for file in 2*.txt; do
[[ $file > $start ]] && list+=("$file")
done
if (( $#list[@] > 0)); then
echo -E rm -i "$list[@]"
fi
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f516350%2fdeleting-files-older-than-30-days-based-on-filename-as-date%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
Here is a bash solution.
f30days=$(date +%s --date="-30 days")
for file in 20*.txt; do
fdate=$(echo $file | tr _ -)
fsec=$(date +%s --date=$fdate/.txt/)
if [[ $fsec -lt $f30days ]]; then
echo "rm $file"
fi
done
I ended it with "echo rm $file
" instead of really deleting your files, this will test the result before.
add a comment |
Here is a bash solution.
f30days=$(date +%s --date="-30 days")
for file in 20*.txt; do
fdate=$(echo $file | tr _ -)
fsec=$(date +%s --date=$fdate/.txt/)
if [[ $fsec -lt $f30days ]]; then
echo "rm $file"
fi
done
I ended it with "echo rm $file
" instead of really deleting your files, this will test the result before.
add a comment |
Here is a bash solution.
f30days=$(date +%s --date="-30 days")
for file in 20*.txt; do
fdate=$(echo $file | tr _ -)
fsec=$(date +%s --date=$fdate/.txt/)
if [[ $fsec -lt $f30days ]]; then
echo "rm $file"
fi
done
I ended it with "echo rm $file
" instead of really deleting your files, this will test the result before.
Here is a bash solution.
f30days=$(date +%s --date="-30 days")
for file in 20*.txt; do
fdate=$(echo $file | tr _ -)
fsec=$(date +%s --date=$fdate/.txt/)
if [[ $fsec -lt $f30days ]]; then
echo "rm $file"
fi
done
I ended it with "echo rm $file
" instead of really deleting your files, this will test the result before.
edited Apr 30 at 14:27
αғsнιη
18k103271
18k103271
answered Apr 30 at 11:07
darxmurfdarxmurf
29410
29410
add a comment |
add a comment |
With zsh
:
zmodload zsh/datetime
strftime -s start '%Y_%m_%d.txt' $((EPOCHSECONDS - 30*86400))
echo -E rm -i 2*.txt(e:'[[ $REPLY > $start ]]':)
Remove the echo -E
when happy.
On a GNU system and with the GNU shell (bash
), you could do something approaching with:
start=$(date -d '30 days ago' +%Y_%m_%d.txt)
list=()
shopt -s nullglob
for file in 2*.txt; do
[[ $file > $start ]] && list+=("$file")
done
if (( $#list[@] > 0)); then
echo -E rm -i "$list[@]"
fi
add a comment |
With zsh
:
zmodload zsh/datetime
strftime -s start '%Y_%m_%d.txt' $((EPOCHSECONDS - 30*86400))
echo -E rm -i 2*.txt(e:'[[ $REPLY > $start ]]':)
Remove the echo -E
when happy.
On a GNU system and with the GNU shell (bash
), you could do something approaching with:
start=$(date -d '30 days ago' +%Y_%m_%d.txt)
list=()
shopt -s nullglob
for file in 2*.txt; do
[[ $file > $start ]] && list+=("$file")
done
if (( $#list[@] > 0)); then
echo -E rm -i "$list[@]"
fi
add a comment |
With zsh
:
zmodload zsh/datetime
strftime -s start '%Y_%m_%d.txt' $((EPOCHSECONDS - 30*86400))
echo -E rm -i 2*.txt(e:'[[ $REPLY > $start ]]':)
Remove the echo -E
when happy.
On a GNU system and with the GNU shell (bash
), you could do something approaching with:
start=$(date -d '30 days ago' +%Y_%m_%d.txt)
list=()
shopt -s nullglob
for file in 2*.txt; do
[[ $file > $start ]] && list+=("$file")
done
if (( $#list[@] > 0)); then
echo -E rm -i "$list[@]"
fi
With zsh
:
zmodload zsh/datetime
strftime -s start '%Y_%m_%d.txt' $((EPOCHSECONDS - 30*86400))
echo -E rm -i 2*.txt(e:'[[ $REPLY > $start ]]':)
Remove the echo -E
when happy.
On a GNU system and with the GNU shell (bash
), you could do something approaching with:
start=$(date -d '30 days ago' +%Y_%m_%d.txt)
list=()
shopt -s nullglob
for file in 2*.txt; do
[[ $file > $start ]] && list+=("$file")
done
if (( $#list[@] > 0)); then
echo -E rm -i "$list[@]"
fi
edited Apr 30 at 20:17
answered Apr 30 at 11:52
Stéphane ChazelasStéphane Chazelas
317k57601962
317k57601962
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f516350%2fdeleting-files-older-than-30-days-based-on-filename-as-date%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
You can use YYYY-MM-DD for your filenames, it would help when using "date" functions then
– darxmurf
Apr 30 at 11:09