Failing if users don't have any files in their home directories
up vote
1
down vote
favorite
I have an issue when I am finding files in users directory and deleting them, but I am getting below error "No such file or directory" when there are no files. Can anyone suggest me how to avoid this error?
[root@server1 ~]# find /home/*/* -name * | xargs rm -rf
find: ‘/home//’: No such file or directory
shell find xargs
add a comment |
up vote
1
down vote
favorite
I have an issue when I am finding files in users directory and deleting them, but I am getting below error "No such file or directory" when there are no files. Can anyone suggest me how to avoid this error?
[root@server1 ~]# find /home/*/* -name * | xargs rm -rf
find: ‘/home//’: No such file or directory
shell find xargs
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I have an issue when I am finding files in users directory and deleting them, but I am getting below error "No such file or directory" when there are no files. Can anyone suggest me how to avoid this error?
[root@server1 ~]# find /home/*/* -name * | xargs rm -rf
find: ‘/home//’: No such file or directory
shell find xargs
I have an issue when I am finding files in users directory and deleting them, but I am getting below error "No such file or directory" when there are no files. Can anyone suggest me how to avoid this error?
[root@server1 ~]# find /home/*/* -name * | xargs rm -rf
find: ‘/home//’: No such file or directory
shell find xargs
shell find xargs
edited Nov 20 at 13:14
RavinderSingh13
25.2k41437
25.2k41437
asked Nov 20 at 13:13
MAK
1083
1083
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
up vote
0
down vote
accepted
Don't do that. ext2 may contain any character other than and
/
for file names! Think about what would happen, if a user names a file
"hi etc"
Here, rm -rf
would receive etc
as second argument, so if your script is executed in /
, you'd delete your /etc
directory. There are options to safely handle file names with spaces, but some of these would fail if the file contains newlines - which of course is equally possible:
"hi
etc"
find
has an option to delete files (-delete
), try to use this. This would also solve your original problem. If that's not possible, read documentation about find -print0
and xargs -0
.
add a comment |
up vote
-1
down vote
When there are no file, your find search returns "No such file or directory", because when there are no file, the directory structure you describe does not exist. The error is then passed to rm
with "xargs".
find /home/ -name * | xargs rm -rf
should get you the result you're waiting without the warning, as find does not try to build a path that does not exist.
Yes. I can remove the files/directories successfully but still the error is there that no such file or directory when I executed them again. How can I avoid this error? [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf find: ‘/home/*/*’: No such file or directory [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf find: ‘/home/*/*’: No such file or directory
– MAK
Nov 20 at 14:09
Well, I'm not sure what you are trying to do, but working with rm directly seems a good idea to me. Why do you need this "find" before ? You could do something like "rm -rf /home/*", or do you want to only delete files ?
– Fadila
Nov 20 at 14:11
I am trying to run a weekly cron job where it should delete the user's directories/files in the /home/*/*. I should not get an error if there are no files found.
– MAK
Nov 20 at 14:14
Well, if you want to delete all files of all users, "rm -rf /home/*" should be a suiting solution. You don't need the find command.
– Fadila
Nov 20 at 14:19
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
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',
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/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%2fstackoverflow.com%2fquestions%2f53393805%2ffailing-if-users-dont-have-any-files-in-their-home-directories%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
up vote
0
down vote
accepted
Don't do that. ext2 may contain any character other than and
/
for file names! Think about what would happen, if a user names a file
"hi etc"
Here, rm -rf
would receive etc
as second argument, so if your script is executed in /
, you'd delete your /etc
directory. There are options to safely handle file names with spaces, but some of these would fail if the file contains newlines - which of course is equally possible:
"hi
etc"
find
has an option to delete files (-delete
), try to use this. This would also solve your original problem. If that's not possible, read documentation about find -print0
and xargs -0
.
add a comment |
up vote
0
down vote
accepted
Don't do that. ext2 may contain any character other than and
/
for file names! Think about what would happen, if a user names a file
"hi etc"
Here, rm -rf
would receive etc
as second argument, so if your script is executed in /
, you'd delete your /etc
directory. There are options to safely handle file names with spaces, but some of these would fail if the file contains newlines - which of course is equally possible:
"hi
etc"
find
has an option to delete files (-delete
), try to use this. This would also solve your original problem. If that's not possible, read documentation about find -print0
and xargs -0
.
add a comment |
up vote
0
down vote
accepted
up vote
0
down vote
accepted
Don't do that. ext2 may contain any character other than and
/
for file names! Think about what would happen, if a user names a file
"hi etc"
Here, rm -rf
would receive etc
as second argument, so if your script is executed in /
, you'd delete your /etc
directory. There are options to safely handle file names with spaces, but some of these would fail if the file contains newlines - which of course is equally possible:
"hi
etc"
find
has an option to delete files (-delete
), try to use this. This would also solve your original problem. If that's not possible, read documentation about find -print0
and xargs -0
.
Don't do that. ext2 may contain any character other than and
/
for file names! Think about what would happen, if a user names a file
"hi etc"
Here, rm -rf
would receive etc
as second argument, so if your script is executed in /
, you'd delete your /etc
directory. There are options to safely handle file names with spaces, but some of these would fail if the file contains newlines - which of course is equally possible:
"hi
etc"
find
has an option to delete files (-delete
), try to use this. This would also solve your original problem. If that's not possible, read documentation about find -print0
and xargs -0
.
answered Nov 20 at 15:16
steffen
9,22522254
9,22522254
add a comment |
add a comment |
up vote
-1
down vote
When there are no file, your find search returns "No such file or directory", because when there are no file, the directory structure you describe does not exist. The error is then passed to rm
with "xargs".
find /home/ -name * | xargs rm -rf
should get you the result you're waiting without the warning, as find does not try to build a path that does not exist.
Yes. I can remove the files/directories successfully but still the error is there that no such file or directory when I executed them again. How can I avoid this error? [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf find: ‘/home/*/*’: No such file or directory [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf find: ‘/home/*/*’: No such file or directory
– MAK
Nov 20 at 14:09
Well, I'm not sure what you are trying to do, but working with rm directly seems a good idea to me. Why do you need this "find" before ? You could do something like "rm -rf /home/*", or do you want to only delete files ?
– Fadila
Nov 20 at 14:11
I am trying to run a weekly cron job where it should delete the user's directories/files in the /home/*/*. I should not get an error if there are no files found.
– MAK
Nov 20 at 14:14
Well, if you want to delete all files of all users, "rm -rf /home/*" should be a suiting solution. You don't need the find command.
– Fadila
Nov 20 at 14:19
add a comment |
up vote
-1
down vote
When there are no file, your find search returns "No such file or directory", because when there are no file, the directory structure you describe does not exist. The error is then passed to rm
with "xargs".
find /home/ -name * | xargs rm -rf
should get you the result you're waiting without the warning, as find does not try to build a path that does not exist.
Yes. I can remove the files/directories successfully but still the error is there that no such file or directory when I executed them again. How can I avoid this error? [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf find: ‘/home/*/*’: No such file or directory [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf find: ‘/home/*/*’: No such file or directory
– MAK
Nov 20 at 14:09
Well, I'm not sure what you are trying to do, but working with rm directly seems a good idea to me. Why do you need this "find" before ? You could do something like "rm -rf /home/*", or do you want to only delete files ?
– Fadila
Nov 20 at 14:11
I am trying to run a weekly cron job where it should delete the user's directories/files in the /home/*/*. I should not get an error if there are no files found.
– MAK
Nov 20 at 14:14
Well, if you want to delete all files of all users, "rm -rf /home/*" should be a suiting solution. You don't need the find command.
– Fadila
Nov 20 at 14:19
add a comment |
up vote
-1
down vote
up vote
-1
down vote
When there are no file, your find search returns "No such file or directory", because when there are no file, the directory structure you describe does not exist. The error is then passed to rm
with "xargs".
find /home/ -name * | xargs rm -rf
should get you the result you're waiting without the warning, as find does not try to build a path that does not exist.
When there are no file, your find search returns "No such file or directory", because when there are no file, the directory structure you describe does not exist. The error is then passed to rm
with "xargs".
find /home/ -name * | xargs rm -rf
should get you the result you're waiting without the warning, as find does not try to build a path that does not exist.
edited Nov 20 at 17:41
pushkin
3,859102551
3,859102551
answered Nov 20 at 13:59
Fadila
11
11
Yes. I can remove the files/directories successfully but still the error is there that no such file or directory when I executed them again. How can I avoid this error? [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf find: ‘/home/*/*’: No such file or directory [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf find: ‘/home/*/*’: No such file or directory
– MAK
Nov 20 at 14:09
Well, I'm not sure what you are trying to do, but working with rm directly seems a good idea to me. Why do you need this "find" before ? You could do something like "rm -rf /home/*", or do you want to only delete files ?
– Fadila
Nov 20 at 14:11
I am trying to run a weekly cron job where it should delete the user's directories/files in the /home/*/*. I should not get an error if there are no files found.
– MAK
Nov 20 at 14:14
Well, if you want to delete all files of all users, "rm -rf /home/*" should be a suiting solution. You don't need the find command.
– Fadila
Nov 20 at 14:19
add a comment |
Yes. I can remove the files/directories successfully but still the error is there that no such file or directory when I executed them again. How can I avoid this error? [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf find: ‘/home/*/*’: No such file or directory [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf find: ‘/home/*/*’: No such file or directory
– MAK
Nov 20 at 14:09
Well, I'm not sure what you are trying to do, but working with rm directly seems a good idea to me. Why do you need this "find" before ? You could do something like "rm -rf /home/*", or do you want to only delete files ?
– Fadila
Nov 20 at 14:11
I am trying to run a weekly cron job where it should delete the user's directories/files in the /home/*/*. I should not get an error if there are no files found.
– MAK
Nov 20 at 14:14
Well, if you want to delete all files of all users, "rm -rf /home/*" should be a suiting solution. You don't need the find command.
– Fadila
Nov 20 at 14:19
Yes. I can remove the files/directories successfully but still the error is there that no such file or directory when I executed them again. How can I avoid this error? [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf find: ‘/home/*/*’: No such file or directory [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf find: ‘/home/*/*’: No such file or directory
– MAK
Nov 20 at 14:09
Yes. I can remove the files/directories successfully but still the error is there that no such file or directory when I executed them again. How can I avoid this error? [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf find: ‘/home/*/*’: No such file or directory [mak@node1 testscripts]$ find /home/*/* -name * | xargs rm -rf find: ‘/home/*/*’: No such file or directory
– MAK
Nov 20 at 14:09
Well, I'm not sure what you are trying to do, but working with rm directly seems a good idea to me. Why do you need this "find" before ? You could do something like "rm -rf /home/*", or do you want to only delete files ?
– Fadila
Nov 20 at 14:11
Well, I'm not sure what you are trying to do, but working with rm directly seems a good idea to me. Why do you need this "find" before ? You could do something like "rm -rf /home/*", or do you want to only delete files ?
– Fadila
Nov 20 at 14:11
I am trying to run a weekly cron job where it should delete the user's directories/files in the /home/*/*. I should not get an error if there are no files found.
– MAK
Nov 20 at 14:14
I am trying to run a weekly cron job where it should delete the user's directories/files in the /home/*/*. I should not get an error if there are no files found.
– MAK
Nov 20 at 14:14
Well, if you want to delete all files of all users, "rm -rf /home/*" should be a suiting solution. You don't need the find command.
– Fadila
Nov 20 at 14:19
Well, if you want to delete all files of all users, "rm -rf /home/*" should be a suiting solution. You don't need the find command.
– Fadila
Nov 20 at 14:19
add a comment |
Thanks for contributing an answer to Stack Overflow!
- 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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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%2fstackoverflow.com%2fquestions%2f53393805%2ffailing-if-users-dont-have-any-files-in-their-home-directories%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