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
Why does the Earth follow an elliptical trajectory rather than a parabolic one?
How is CoreiX like Corei5, i7 is related to Haswell, Ivy Bridge?
Electric kick drum pedal starts oscillating in such a way that it does not register hits
Series that evaluates to different values upon changing order of summation
Examples where existence is harder than evaluation
Are there variations of the regular runtimes of the Big-O-Notation?
How are one-time password generators like Google Authenticator different from having two passwords?
Is it bad writing or bad story telling if first person narrative contains more information than the narrator knows?
Why did Captain America age?
Succinct and gender-neutral Russian word for "writer"
Why is it wrong to *implement* myself a known, published, widely believed to be secure crypto algorithm?
What's the difference between const array and static const array in C/C++
Why can't I prove summation identities without guessing?
What is the name of meteoroids which hit Moon, Mars, or pretty much anything that isn’t the Earth?
Is it a Munchausen Number?
Does the 500 feet falling cap apply per fall, or per turn?
Why do the non-leaf Nodes of Merkle tree need to be hashed?
Company stopped paying my salary. What are my options?
Removing all characters except digits from clipboard
Watching the game, having a puzzle
Company threw a surprise party for the CEO, 3 weeks later management says we have to pay for it, do I have to?
What food production methods would allow a metropolis like New York to become self sufficient
Translation of the latin word 'sit' in Thomas Aquinas' works
Thesis' "Future Work" section – is it acceptable to omit personal involvement in a mentioned project?
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.7k1486146
42.7k1486146
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
42411
42411
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
317k57602964
317k57602964
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