Delete empty subfolders, keep parent folderHelp with rsync excludes not workingDelete certain filetypes and empty folders within a folder and subfoldersUnderstanding rm commandRename files in subfolders with parent folder namesShould one call this an inverse differential backup and how does one achieve it?Writing an alias that puts a folder and its subfolders/files into an encrypted archive titled with the dateScript for “extracting” subfolders into parent folderDelete the parent directory (non-empty) if a specific child directory is emptyDelete old backup folders from directory using cronrsync back error 23 on Thunderbird file
Is it better to use mosfet with gate driver IC or mosfet with lower VGs on
Beauville-Laszlo for schemes
What does the "capacitor into resistance" symbol mean?
How to generate short fixed length cryptographic hashes?
How do we know that black holes are spinning?
Why are two-stroke engines nearly unheard of in aviation?
Output Distinct Factor Cuboids
Wrong Schengen Visa exit stamp on my passport, who can I complain to?
What did the first ever Hunger Games look like?
Python web-scraper to download table of transistor counts from Wikipedia
How to ensure that neurotic or annoying characters don't get tiring on the long run
Is it appropriate to CC a lot of people on an email?
Floating Point XOR
Other than good shoes and a stick, what are some ways to preserve your knees on long hikes?
How would you translate Evangelii Nuntiandi?
Who are the people reviewing far more papers than they're submitting for review?
Test to know when to use GLM over Linear Regression?
Why does '/' contain '..'?
The role of Lorentz tranformations
Why is the year in this ISO timestamp not 2019?
How to give my students a straightedge instead of a ruler
Why is it called a stateful and a stateless firewall?
What are the typical trumpet parts in classical music?
Did Sauron ever betray Morgoth?
Delete empty subfolders, keep parent folder
Help with rsync excludes not workingDelete certain filetypes and empty folders within a folder and subfoldersUnderstanding rm commandRename files in subfolders with parent folder namesShould one call this an inverse differential backup and how does one achieve it?Writing an alias that puts a folder and its subfolders/files into an encrypted archive titled with the dateScript for “extracting” subfolders into parent folderDelete the parent directory (non-empty) if a specific child directory is emptyDelete old backup folders from directory using cronrsync back error 23 on Thunderbird file
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
When I use
find /home/user/parentdir -type d -empty -delete
it looks recursively for empty subfolders inside /home/user/parentdir and deletes. But if /home/user/parentdir is also empty, it deletes the parent folder, which is undesirable for me.
I keep this parentdir to rsync some files to backup or cloud, after process I need to delete empty folders, but seems unproductive to recreate it every time.
Any suggestions to keep parentdir? I thought about creating a ".nocopy" file inside parentdir and exclude it from rsync, but looks like overkill. There is a more elegant way?
command-line bash rsync find
add a comment
|
When I use
find /home/user/parentdir -type d -empty -delete
it looks recursively for empty subfolders inside /home/user/parentdir and deletes. But if /home/user/parentdir is also empty, it deletes the parent folder, which is undesirable for me.
I keep this parentdir to rsync some files to backup or cloud, after process I need to delete empty folders, but seems unproductive to recreate it every time.
Any suggestions to keep parentdir? I thought about creating a ".nocopy" file inside parentdir and exclude it from rsync, but looks like overkill. There is a more elegant way?
command-line bash rsync find
if you add a forward slash / to the end of /parentdir (ie /parentdir/)does that make a difference?
– Graham
9 hours ago
2
-mindepth 1
?
– steeldriver
9 hours ago
@Graham /parentdir/ deletes parentdir too, so makes no difference.
– TNT
9 hours ago
ah, I see I missed the * at the end which @Amourk mentions in his answer.
– Graham
8 hours ago
add a comment
|
When I use
find /home/user/parentdir -type d -empty -delete
it looks recursively for empty subfolders inside /home/user/parentdir and deletes. But if /home/user/parentdir is also empty, it deletes the parent folder, which is undesirable for me.
I keep this parentdir to rsync some files to backup or cloud, after process I need to delete empty folders, but seems unproductive to recreate it every time.
Any suggestions to keep parentdir? I thought about creating a ".nocopy" file inside parentdir and exclude it from rsync, but looks like overkill. There is a more elegant way?
command-line bash rsync find
When I use
find /home/user/parentdir -type d -empty -delete
it looks recursively for empty subfolders inside /home/user/parentdir and deletes. But if /home/user/parentdir is also empty, it deletes the parent folder, which is undesirable for me.
I keep this parentdir to rsync some files to backup or cloud, after process I need to delete empty folders, but seems unproductive to recreate it every time.
Any suggestions to keep parentdir? I thought about creating a ".nocopy" file inside parentdir and exclude it from rsync, but looks like overkill. There is a more elegant way?
command-line bash rsync find
command-line bash rsync find
asked 10 hours ago
TNTTNT
1134 bronze badges
1134 bronze badges
if you add a forward slash / to the end of /parentdir (ie /parentdir/)does that make a difference?
– Graham
9 hours ago
2
-mindepth 1
?
– steeldriver
9 hours ago
@Graham /parentdir/ deletes parentdir too, so makes no difference.
– TNT
9 hours ago
ah, I see I missed the * at the end which @Amourk mentions in his answer.
– Graham
8 hours ago
add a comment
|
if you add a forward slash / to the end of /parentdir (ie /parentdir/)does that make a difference?
– Graham
9 hours ago
2
-mindepth 1
?
– steeldriver
9 hours ago
@Graham /parentdir/ deletes parentdir too, so makes no difference.
– TNT
9 hours ago
ah, I see I missed the * at the end which @Amourk mentions in his answer.
– Graham
8 hours ago
if you add a forward slash / to the end of /parentdir (ie /parentdir/)does that make a difference?
– Graham
9 hours ago
if you add a forward slash / to the end of /parentdir (ie /parentdir/)does that make a difference?
– Graham
9 hours ago
2
2
-mindepth 1
?– steeldriver
9 hours ago
-mindepth 1
?– steeldriver
9 hours ago
@Graham /parentdir/ deletes parentdir too, so makes no difference.
– TNT
9 hours ago
@Graham /parentdir/ deletes parentdir too, so makes no difference.
– TNT
9 hours ago
ah, I see I missed the * at the end which @Amourk mentions in his answer.
– Graham
8 hours ago
ah, I see I missed the * at the end which @Amourk mentions in his answer.
– Graham
8 hours ago
add a comment
|
1 Answer
1
active
oldest
votes
By adding /*
to the end of parentdir
, you are performing the action on all subdirs of parentdir rather than on parentdir
itself. And so in the same way /home/user/
is not deleted in the old command, parentdir
will not be not be deleted in the command below.*
is called a glob operator and it matches any string of characters.
find /home/user/parentdir/* -type d -empty -delete
One thing to be aware of with this approach is if there is a large number of files in/home/user/parentdir/
, the expanded glob may exceedARG_MAX
, resulting in an argument list too long error. You could reduce the chance of that happening by changing the glob to*/
so that it matches directories only.
– steeldriver
5 hours ago
Also beware that this will not find any children starting with a dot. And someday you will realize this, and if you also do a find for ".*" you will be in a huge world of hurt (because ".*" matches ".."). Ask me how I know.
– Glenn Willen
1 hour ago
add a comment
|
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "89"
;
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: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
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/4.0/"u003ecc by-sa 4.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%2faskubuntu.com%2fquestions%2f1174332%2fdelete-empty-subfolders-keep-parent-folder%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
By adding /*
to the end of parentdir
, you are performing the action on all subdirs of parentdir rather than on parentdir
itself. And so in the same way /home/user/
is not deleted in the old command, parentdir
will not be not be deleted in the command below.*
is called a glob operator and it matches any string of characters.
find /home/user/parentdir/* -type d -empty -delete
One thing to be aware of with this approach is if there is a large number of files in/home/user/parentdir/
, the expanded glob may exceedARG_MAX
, resulting in an argument list too long error. You could reduce the chance of that happening by changing the glob to*/
so that it matches directories only.
– steeldriver
5 hours ago
Also beware that this will not find any children starting with a dot. And someday you will realize this, and if you also do a find for ".*" you will be in a huge world of hurt (because ".*" matches ".."). Ask me how I know.
– Glenn Willen
1 hour ago
add a comment
|
By adding /*
to the end of parentdir
, you are performing the action on all subdirs of parentdir rather than on parentdir
itself. And so in the same way /home/user/
is not deleted in the old command, parentdir
will not be not be deleted in the command below.*
is called a glob operator and it matches any string of characters.
find /home/user/parentdir/* -type d -empty -delete
One thing to be aware of with this approach is if there is a large number of files in/home/user/parentdir/
, the expanded glob may exceedARG_MAX
, resulting in an argument list too long error. You could reduce the chance of that happening by changing the glob to*/
so that it matches directories only.
– steeldriver
5 hours ago
Also beware that this will not find any children starting with a dot. And someday you will realize this, and if you also do a find for ".*" you will be in a huge world of hurt (because ".*" matches ".."). Ask me how I know.
– Glenn Willen
1 hour ago
add a comment
|
By adding /*
to the end of parentdir
, you are performing the action on all subdirs of parentdir rather than on parentdir
itself. And so in the same way /home/user/
is not deleted in the old command, parentdir
will not be not be deleted in the command below.*
is called a glob operator and it matches any string of characters.
find /home/user/parentdir/* -type d -empty -delete
By adding /*
to the end of parentdir
, you are performing the action on all subdirs of parentdir rather than on parentdir
itself. And so in the same way /home/user/
is not deleted in the old command, parentdir
will not be not be deleted in the command below.*
is called a glob operator and it matches any string of characters.
find /home/user/parentdir/* -type d -empty -delete
answered 9 hours ago
AmourKAmourK
1388 bronze badges
1388 bronze badges
One thing to be aware of with this approach is if there is a large number of files in/home/user/parentdir/
, the expanded glob may exceedARG_MAX
, resulting in an argument list too long error. You could reduce the chance of that happening by changing the glob to*/
so that it matches directories only.
– steeldriver
5 hours ago
Also beware that this will not find any children starting with a dot. And someday you will realize this, and if you also do a find for ".*" you will be in a huge world of hurt (because ".*" matches ".."). Ask me how I know.
– Glenn Willen
1 hour ago
add a comment
|
One thing to be aware of with this approach is if there is a large number of files in/home/user/parentdir/
, the expanded glob may exceedARG_MAX
, resulting in an argument list too long error. You could reduce the chance of that happening by changing the glob to*/
so that it matches directories only.
– steeldriver
5 hours ago
Also beware that this will not find any children starting with a dot. And someday you will realize this, and if you also do a find for ".*" you will be in a huge world of hurt (because ".*" matches ".."). Ask me how I know.
– Glenn Willen
1 hour ago
One thing to be aware of with this approach is if there is a large number of files in
/home/user/parentdir/
, the expanded glob may exceed ARG_MAX
, resulting in an argument list too long error. You could reduce the chance of that happening by changing the glob to */
so that it matches directories only.– steeldriver
5 hours ago
One thing to be aware of with this approach is if there is a large number of files in
/home/user/parentdir/
, the expanded glob may exceed ARG_MAX
, resulting in an argument list too long error. You could reduce the chance of that happening by changing the glob to */
so that it matches directories only.– steeldriver
5 hours ago
Also beware that this will not find any children starting with a dot. And someday you will realize this, and if you also do a find for ".*" you will be in a huge world of hurt (because ".*" matches ".."). Ask me how I know.
– Glenn Willen
1 hour ago
Also beware that this will not find any children starting with a dot. And someday you will realize this, and if you also do a find for ".*" you will be in a huge world of hurt (because ".*" matches ".."). Ask me how I know.
– Glenn Willen
1 hour ago
add a comment
|
Thanks for contributing an answer to Ask Ubuntu!
- 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%2faskubuntu.com%2fquestions%2f1174332%2fdelete-empty-subfolders-keep-parent-folder%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
if you add a forward slash / to the end of /parentdir (ie /parentdir/)does that make a difference?
– Graham
9 hours ago
2
-mindepth 1
?– steeldriver
9 hours ago
@Graham /parentdir/ deletes parentdir too, so makes no difference.
– TNT
9 hours ago
ah, I see I missed the * at the end which @Amourk mentions in his answer.
– Graham
8 hours ago