How to delete old backups based on a date in file name?how to delete files with specific date patternRemove files older than 5 days in UNIX (date in file name, not timestamp)Remove files older than 5 days in UNIX (date in file name, not timestamp)file deletion using forfilesRemove old files in a directory except files present in an exception fileDelete files older than X daysbash script to identify the files based on current date and file name patternDelete sub-directories with YYYYMMDD in name older than N daysFind and delete folders within directory that are older than x daysDeleting older log fileshow to delete files with specific date patternHow to delete all directories in a directory older than 2 weeks except the latest one that match a file pattern?
Failed to fetch jessie backports repository
Applicability of Single Responsibility Principle
Do the temporary hit points from Reckless Abandon stack if I make multiple attacks on my turn?
How does the UK government determine the size of a mandate?
Unreliable Magic - Is it worth it?
Why didn't Theresa May consult with Parliament before negotiating a deal with the EU?
What is paid subscription needed for in Mortal Kombat 11?
Do all network devices need to make routing decisions, regardless of communication across networks or within a network?
Tiptoe or tiphoof? Adjusting words to better fit fantasy races
Gears on left are inverse to gears on right?
What Brexit proposals are on the table in the indicative votes on the 27th of March 2019?
What does "I’d sit this one out, Cap," imply or mean in the context?
Purchasing a ticket for someone else in another country?
How can I get through very long and very dry, but also very useful technical documents when learning a new tool?
How can we prove that any integral in the set of non-elementary integrals cannot be expressed in the form of elementary functions?
How easy is it to start Magic from scratch?
How to check is there any negative term in a large list?
How can a function with a hole (removable discontinuity) equal a function with no hole?
How to draw lines on a tikz-cd diagram
Increase performance creating Mandelbrot set in python
Why not increase contact surface when reentering the atmosphere?
CREATE opcode: what does it really do?
Opposite of a diet
Why escape if the_content isnt?
How to delete old backups based on a date in file name?
how to delete files with specific date patternRemove files older than 5 days in UNIX (date in file name, not timestamp)Remove files older than 5 days in UNIX (date in file name, not timestamp)file deletion using forfilesRemove old files in a directory except files present in an exception fileDelete files older than X daysbash script to identify the files based on current date and file name patternDelete sub-directories with YYYYMMDD in name older than N daysFind and delete folders within directory that are older than x daysDeleting older log fileshow to delete files with specific date patternHow to delete all directories in a directory older than 2 weeks except the latest one that match a file pattern?
I have a daily backups named like this:
yyyymmddhhmm.zip // pattern
201503200100.zip // backup from 20. 3. 2015 1:00
I'm trying to create a script that deletes all backups older than 3 days. The script should be also able to delete all other files in the folder not matching the pattern (but there would be a switch for that in the script to disable this).
To determine the file age I don't want to use backups timestamps as other programs also manipulate with the files and it can be tampered.
With the help of: Remove files older than 5 days in UNIX (date in file name, not timestamp)
I got:
#!/bin/bash
DELETE_OTHERS=yes
BACKUPS_PATH=/mnt/!ARCHIVE/!backups/
THRESHOLD=$(date -d "3 days ago" +%Y%m%d%H%M)
ls -1 $BACKUPS_PATH????????????.zip |
while read A DATE B FILE
do
[[ $DATE -le $THRESHOLD ]] && rm -v $BACKUPS_PATH$FILE
done
if [ $DELETE_OTHERS == "yes" ]; then
rm $BACKUPS_PATH*.* // but I don't know how to not-delete the files matching pattern
fi
But it keeps saying:
rm: missing operand
Where is the problem and how to complete the script?
bash shell-script scripting file-management
add a comment |
I have a daily backups named like this:
yyyymmddhhmm.zip // pattern
201503200100.zip // backup from 20. 3. 2015 1:00
I'm trying to create a script that deletes all backups older than 3 days. The script should be also able to delete all other files in the folder not matching the pattern (but there would be a switch for that in the script to disable this).
To determine the file age I don't want to use backups timestamps as other programs also manipulate with the files and it can be tampered.
With the help of: Remove files older than 5 days in UNIX (date in file name, not timestamp)
I got:
#!/bin/bash
DELETE_OTHERS=yes
BACKUPS_PATH=/mnt/!ARCHIVE/!backups/
THRESHOLD=$(date -d "3 days ago" +%Y%m%d%H%M)
ls -1 $BACKUPS_PATH????????????.zip |
while read A DATE B FILE
do
[[ $DATE -le $THRESHOLD ]] && rm -v $BACKUPS_PATH$FILE
done
if [ $DELETE_OTHERS == "yes" ]; then
rm $BACKUPS_PATH*.* // but I don't know how to not-delete the files matching pattern
fi
But it keeps saying:
rm: missing operand
Where is the problem and how to complete the script?
bash shell-script scripting file-management
Do you actually have a!
at the beginning of yourARCHIVE
andbackups
directory names? If so, why in the world would you want to complicate your life in such a way?
– terdon♦
Mar 21 '15 at 17:09
Yes I have. I'm using!
to keep the one or two key directories on top of the file listings when there is a lot of other files/folders in that directory and it is sorted by name. I am all ears if there is a better technique for that :)
– Joudicek Jouda
Mar 21 '15 at 19:13
1
I just addaa
or similar to the name, for exampleaabackups
. That way, you don't need to escape special characters. It's a matter of personal preference though.
– terdon♦
Mar 21 '15 at 20:34
add a comment |
I have a daily backups named like this:
yyyymmddhhmm.zip // pattern
201503200100.zip // backup from 20. 3. 2015 1:00
I'm trying to create a script that deletes all backups older than 3 days. The script should be also able to delete all other files in the folder not matching the pattern (but there would be a switch for that in the script to disable this).
To determine the file age I don't want to use backups timestamps as other programs also manipulate with the files and it can be tampered.
With the help of: Remove files older than 5 days in UNIX (date in file name, not timestamp)
I got:
#!/bin/bash
DELETE_OTHERS=yes
BACKUPS_PATH=/mnt/!ARCHIVE/!backups/
THRESHOLD=$(date -d "3 days ago" +%Y%m%d%H%M)
ls -1 $BACKUPS_PATH????????????.zip |
while read A DATE B FILE
do
[[ $DATE -le $THRESHOLD ]] && rm -v $BACKUPS_PATH$FILE
done
if [ $DELETE_OTHERS == "yes" ]; then
rm $BACKUPS_PATH*.* // but I don't know how to not-delete the files matching pattern
fi
But it keeps saying:
rm: missing operand
Where is the problem and how to complete the script?
bash shell-script scripting file-management
I have a daily backups named like this:
yyyymmddhhmm.zip // pattern
201503200100.zip // backup from 20. 3. 2015 1:00
I'm trying to create a script that deletes all backups older than 3 days. The script should be also able to delete all other files in the folder not matching the pattern (but there would be a switch for that in the script to disable this).
To determine the file age I don't want to use backups timestamps as other programs also manipulate with the files and it can be tampered.
With the help of: Remove files older than 5 days in UNIX (date in file name, not timestamp)
I got:
#!/bin/bash
DELETE_OTHERS=yes
BACKUPS_PATH=/mnt/!ARCHIVE/!backups/
THRESHOLD=$(date -d "3 days ago" +%Y%m%d%H%M)
ls -1 $BACKUPS_PATH????????????.zip |
while read A DATE B FILE
do
[[ $DATE -le $THRESHOLD ]] && rm -v $BACKUPS_PATH$FILE
done
if [ $DELETE_OTHERS == "yes" ]; then
rm $BACKUPS_PATH*.* // but I don't know how to not-delete the files matching pattern
fi
But it keeps saying:
rm: missing operand
Where is the problem and how to complete the script?
bash shell-script scripting file-management
bash shell-script scripting file-management
edited Apr 13 '17 at 12:36
Community♦
1
1
asked Mar 21 '15 at 15:42
Joudicek JoudaJoudicek Jouda
166126
166126
Do you actually have a!
at the beginning of yourARCHIVE
andbackups
directory names? If so, why in the world would you want to complicate your life in such a way?
– terdon♦
Mar 21 '15 at 17:09
Yes I have. I'm using!
to keep the one or two key directories on top of the file listings when there is a lot of other files/folders in that directory and it is sorted by name. I am all ears if there is a better technique for that :)
– Joudicek Jouda
Mar 21 '15 at 19:13
1
I just addaa
or similar to the name, for exampleaabackups
. That way, you don't need to escape special characters. It's a matter of personal preference though.
– terdon♦
Mar 21 '15 at 20:34
add a comment |
Do you actually have a!
at the beginning of yourARCHIVE
andbackups
directory names? If so, why in the world would you want to complicate your life in such a way?
– terdon♦
Mar 21 '15 at 17:09
Yes I have. I'm using!
to keep the one or two key directories on top of the file listings when there is a lot of other files/folders in that directory and it is sorted by name. I am all ears if there is a better technique for that :)
– Joudicek Jouda
Mar 21 '15 at 19:13
1
I just addaa
or similar to the name, for exampleaabackups
. That way, you don't need to escape special characters. It's a matter of personal preference though.
– terdon♦
Mar 21 '15 at 20:34
Do you actually have a
!
at the beginning of your ARCHIVE
and backups
directory names? If so, why in the world would you want to complicate your life in such a way?– terdon♦
Mar 21 '15 at 17:09
Do you actually have a
!
at the beginning of your ARCHIVE
and backups
directory names? If so, why in the world would you want to complicate your life in such a way?– terdon♦
Mar 21 '15 at 17:09
Yes I have. I'm using
!
to keep the one or two key directories on top of the file listings when there is a lot of other files/folders in that directory and it is sorted by name. I am all ears if there is a better technique for that :)– Joudicek Jouda
Mar 21 '15 at 19:13
Yes I have. I'm using
!
to keep the one or two key directories on top of the file listings when there is a lot of other files/folders in that directory and it is sorted by name. I am all ears if there is a better technique for that :)– Joudicek Jouda
Mar 21 '15 at 19:13
1
1
I just add
aa
or similar to the name, for example aabackups
. That way, you don't need to escape special characters. It's a matter of personal preference though.– terdon♦
Mar 21 '15 at 20:34
I just add
aa
or similar to the name, for example aabackups
. That way, you don't need to escape special characters. It's a matter of personal preference though.– terdon♦
Mar 21 '15 at 20:34
add a comment |
3 Answers
3
active
oldest
votes
The first problem in your code is that you are parsing ls
. This means it will break very easily, if you have any spaces in your file or directory names for example. You should use shell globbing or find
instead.
A bigger problem is that you are not reading the data correctly. Your code:
ls -1 | while read A DATE B FILE
will never populate $FILE
. The output of ls -1
is just a list of filenames so, unless those file names contain whitespace, only the first of the 4 variables you give to read
will be populated.
Here's a working version of your script:
#!/usr/bin/env bash
DELETE_OTHERS=yes
BACKUPS_PATH=/mnt/!ARCHIVE/!backups
THRESHOLD=$(date -d "3 days ago" +%Y%m%d%H%M)
## Find all files in $BACKUPS_PATH. The -type f means only files
## and the -maxdepth 1 ensures that any files in subdirectories are
## not included. Combined with -print0 (separate file names with ),
## IFS= (don't break on whitespace), "-d ''" (records end on '') , it can
## deal with all file names.
find $BACKUPS_PATH -maxdepth 1 -type f -print0 | while IFS= read -d '' -r file
do
## Does this file name match the pattern (13 digits, then .zip)?
if [[ "$(basename "$file")" =~ ^[0-9]12.zip$ ]]
then
## Delete the file if it's older than the $THR
[ "$(basename "$file" .zip)" -le "$THRESHOLD" ] && rm -v -- "$file"
else
## If the file does not match the pattern, delete if
## DELETE_OTHERS is set to "yes"
[ $DELETE_OTHERS == "yes" ] && rm -v -- "$file"
fi
done
add a comment |
don't you forget the sed
line between ls -1
and while read
, this line IS important.
for first question I would suggest: (a awk remplacement I was unable to find a sed equivalent)
ls -1 $BACKUPS_PATH????????????.zip |
awk -F. 'printf "%s %sn",$1,$0 ;' |
while read DATE FILE
do
[[ $DATE -le $THRESHOLD ]] && rm -v $BACKUPS_PATH$FILE
done
provided shell arithmetic are at least 37 bit wise to do the $DATE -le $THRESHOLD
testing.
This breaks on whitespace and other strange characters.
– terdon♦
Mar 21 '15 at 17:45
add a comment |
In FreeBSD use:
Example: find all files in /usr/home/foobar owned by foobar that are older than 5760 minutes (4 days) and delete them.
find /usr/home/foobar -user foobar -type f -mmin +5760 -delete
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%2f191632%2fhow-to-delete-old-backups-based-on-a-date-in-file-name%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
The first problem in your code is that you are parsing ls
. This means it will break very easily, if you have any spaces in your file or directory names for example. You should use shell globbing or find
instead.
A bigger problem is that you are not reading the data correctly. Your code:
ls -1 | while read A DATE B FILE
will never populate $FILE
. The output of ls -1
is just a list of filenames so, unless those file names contain whitespace, only the first of the 4 variables you give to read
will be populated.
Here's a working version of your script:
#!/usr/bin/env bash
DELETE_OTHERS=yes
BACKUPS_PATH=/mnt/!ARCHIVE/!backups
THRESHOLD=$(date -d "3 days ago" +%Y%m%d%H%M)
## Find all files in $BACKUPS_PATH. The -type f means only files
## and the -maxdepth 1 ensures that any files in subdirectories are
## not included. Combined with -print0 (separate file names with ),
## IFS= (don't break on whitespace), "-d ''" (records end on '') , it can
## deal with all file names.
find $BACKUPS_PATH -maxdepth 1 -type f -print0 | while IFS= read -d '' -r file
do
## Does this file name match the pattern (13 digits, then .zip)?
if [[ "$(basename "$file")" =~ ^[0-9]12.zip$ ]]
then
## Delete the file if it's older than the $THR
[ "$(basename "$file" .zip)" -le "$THRESHOLD" ] && rm -v -- "$file"
else
## If the file does not match the pattern, delete if
## DELETE_OTHERS is set to "yes"
[ $DELETE_OTHERS == "yes" ] && rm -v -- "$file"
fi
done
add a comment |
The first problem in your code is that you are parsing ls
. This means it will break very easily, if you have any spaces in your file or directory names for example. You should use shell globbing or find
instead.
A bigger problem is that you are not reading the data correctly. Your code:
ls -1 | while read A DATE B FILE
will never populate $FILE
. The output of ls -1
is just a list of filenames so, unless those file names contain whitespace, only the first of the 4 variables you give to read
will be populated.
Here's a working version of your script:
#!/usr/bin/env bash
DELETE_OTHERS=yes
BACKUPS_PATH=/mnt/!ARCHIVE/!backups
THRESHOLD=$(date -d "3 days ago" +%Y%m%d%H%M)
## Find all files in $BACKUPS_PATH. The -type f means only files
## and the -maxdepth 1 ensures that any files in subdirectories are
## not included. Combined with -print0 (separate file names with ),
## IFS= (don't break on whitespace), "-d ''" (records end on '') , it can
## deal with all file names.
find $BACKUPS_PATH -maxdepth 1 -type f -print0 | while IFS= read -d '' -r file
do
## Does this file name match the pattern (13 digits, then .zip)?
if [[ "$(basename "$file")" =~ ^[0-9]12.zip$ ]]
then
## Delete the file if it's older than the $THR
[ "$(basename "$file" .zip)" -le "$THRESHOLD" ] && rm -v -- "$file"
else
## If the file does not match the pattern, delete if
## DELETE_OTHERS is set to "yes"
[ $DELETE_OTHERS == "yes" ] && rm -v -- "$file"
fi
done
add a comment |
The first problem in your code is that you are parsing ls
. This means it will break very easily, if you have any spaces in your file or directory names for example. You should use shell globbing or find
instead.
A bigger problem is that you are not reading the data correctly. Your code:
ls -1 | while read A DATE B FILE
will never populate $FILE
. The output of ls -1
is just a list of filenames so, unless those file names contain whitespace, only the first of the 4 variables you give to read
will be populated.
Here's a working version of your script:
#!/usr/bin/env bash
DELETE_OTHERS=yes
BACKUPS_PATH=/mnt/!ARCHIVE/!backups
THRESHOLD=$(date -d "3 days ago" +%Y%m%d%H%M)
## Find all files in $BACKUPS_PATH. The -type f means only files
## and the -maxdepth 1 ensures that any files in subdirectories are
## not included. Combined with -print0 (separate file names with ),
## IFS= (don't break on whitespace), "-d ''" (records end on '') , it can
## deal with all file names.
find $BACKUPS_PATH -maxdepth 1 -type f -print0 | while IFS= read -d '' -r file
do
## Does this file name match the pattern (13 digits, then .zip)?
if [[ "$(basename "$file")" =~ ^[0-9]12.zip$ ]]
then
## Delete the file if it's older than the $THR
[ "$(basename "$file" .zip)" -le "$THRESHOLD" ] && rm -v -- "$file"
else
## If the file does not match the pattern, delete if
## DELETE_OTHERS is set to "yes"
[ $DELETE_OTHERS == "yes" ] && rm -v -- "$file"
fi
done
The first problem in your code is that you are parsing ls
. This means it will break very easily, if you have any spaces in your file or directory names for example. You should use shell globbing or find
instead.
A bigger problem is that you are not reading the data correctly. Your code:
ls -1 | while read A DATE B FILE
will never populate $FILE
. The output of ls -1
is just a list of filenames so, unless those file names contain whitespace, only the first of the 4 variables you give to read
will be populated.
Here's a working version of your script:
#!/usr/bin/env bash
DELETE_OTHERS=yes
BACKUPS_PATH=/mnt/!ARCHIVE/!backups
THRESHOLD=$(date -d "3 days ago" +%Y%m%d%H%M)
## Find all files in $BACKUPS_PATH. The -type f means only files
## and the -maxdepth 1 ensures that any files in subdirectories are
## not included. Combined with -print0 (separate file names with ),
## IFS= (don't break on whitespace), "-d ''" (records end on '') , it can
## deal with all file names.
find $BACKUPS_PATH -maxdepth 1 -type f -print0 | while IFS= read -d '' -r file
do
## Does this file name match the pattern (13 digits, then .zip)?
if [[ "$(basename "$file")" =~ ^[0-9]12.zip$ ]]
then
## Delete the file if it's older than the $THR
[ "$(basename "$file" .zip)" -le "$THRESHOLD" ] && rm -v -- "$file"
else
## If the file does not match the pattern, delete if
## DELETE_OTHERS is set to "yes"
[ $DELETE_OTHERS == "yes" ] && rm -v -- "$file"
fi
done
edited Mar 21 '15 at 17:47
answered Mar 21 '15 at 17:38
terdon♦terdon
133k32265444
133k32265444
add a comment |
add a comment |
don't you forget the sed
line between ls -1
and while read
, this line IS important.
for first question I would suggest: (a awk remplacement I was unable to find a sed equivalent)
ls -1 $BACKUPS_PATH????????????.zip |
awk -F. 'printf "%s %sn",$1,$0 ;' |
while read DATE FILE
do
[[ $DATE -le $THRESHOLD ]] && rm -v $BACKUPS_PATH$FILE
done
provided shell arithmetic are at least 37 bit wise to do the $DATE -le $THRESHOLD
testing.
This breaks on whitespace and other strange characters.
– terdon♦
Mar 21 '15 at 17:45
add a comment |
don't you forget the sed
line between ls -1
and while read
, this line IS important.
for first question I would suggest: (a awk remplacement I was unable to find a sed equivalent)
ls -1 $BACKUPS_PATH????????????.zip |
awk -F. 'printf "%s %sn",$1,$0 ;' |
while read DATE FILE
do
[[ $DATE -le $THRESHOLD ]] && rm -v $BACKUPS_PATH$FILE
done
provided shell arithmetic are at least 37 bit wise to do the $DATE -le $THRESHOLD
testing.
This breaks on whitespace and other strange characters.
– terdon♦
Mar 21 '15 at 17:45
add a comment |
don't you forget the sed
line between ls -1
and while read
, this line IS important.
for first question I would suggest: (a awk remplacement I was unable to find a sed equivalent)
ls -1 $BACKUPS_PATH????????????.zip |
awk -F. 'printf "%s %sn",$1,$0 ;' |
while read DATE FILE
do
[[ $DATE -le $THRESHOLD ]] && rm -v $BACKUPS_PATH$FILE
done
provided shell arithmetic are at least 37 bit wise to do the $DATE -le $THRESHOLD
testing.
don't you forget the sed
line between ls -1
and while read
, this line IS important.
for first question I would suggest: (a awk remplacement I was unable to find a sed equivalent)
ls -1 $BACKUPS_PATH????????????.zip |
awk -F. 'printf "%s %sn",$1,$0 ;' |
while read DATE FILE
do
[[ $DATE -le $THRESHOLD ]] && rm -v $BACKUPS_PATH$FILE
done
provided shell arithmetic are at least 37 bit wise to do the $DATE -le $THRESHOLD
testing.
edited Mar 21 '15 at 16:57
answered Mar 21 '15 at 16:50
ArchemarArchemar
20.4k93973
20.4k93973
This breaks on whitespace and other strange characters.
– terdon♦
Mar 21 '15 at 17:45
add a comment |
This breaks on whitespace and other strange characters.
– terdon♦
Mar 21 '15 at 17:45
This breaks on whitespace and other strange characters.
– terdon♦
Mar 21 '15 at 17:45
This breaks on whitespace and other strange characters.
– terdon♦
Mar 21 '15 at 17:45
add a comment |
In FreeBSD use:
Example: find all files in /usr/home/foobar owned by foobar that are older than 5760 minutes (4 days) and delete them.
find /usr/home/foobar -user foobar -type f -mmin +5760 -delete
add a comment |
In FreeBSD use:
Example: find all files in /usr/home/foobar owned by foobar that are older than 5760 minutes (4 days) and delete them.
find /usr/home/foobar -user foobar -type f -mmin +5760 -delete
add a comment |
In FreeBSD use:
Example: find all files in /usr/home/foobar owned by foobar that are older than 5760 minutes (4 days) and delete them.
find /usr/home/foobar -user foobar -type f -mmin +5760 -delete
In FreeBSD use:
Example: find all files in /usr/home/foobar owned by foobar that are older than 5760 minutes (4 days) and delete them.
find /usr/home/foobar -user foobar -type f -mmin +5760 -delete
answered Nov 19 '18 at 16:40
Santiago StaviskiSantiago Staviski
1
1
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%2f191632%2fhow-to-delete-old-backups-based-on-a-date-in-file-name%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
-bash, file-management, scripting, shell-script
Do you actually have a
!
at the beginning of yourARCHIVE
andbackups
directory names? If so, why in the world would you want to complicate your life in such a way?– terdon♦
Mar 21 '15 at 17:09
Yes I have. I'm using
!
to keep the one or two key directories on top of the file listings when there is a lot of other files/folders in that directory and it is sorted by name. I am all ears if there is a better technique for that :)– Joudicek Jouda
Mar 21 '15 at 19:13
1
I just add
aa
or similar to the name, for exampleaabackups
. That way, you don't need to escape special characters. It's a matter of personal preference though.– terdon♦
Mar 21 '15 at 20:34