Combining multiple find commands into one
I have a bash file with the following commands to copy books from my books folder into my toread / Read Later folder
find /books -name '*.pdf' -exec cp -n {} /toread ;
find /books -name '*.epub' -exec cp -n {} /toread ;
find /books -name '*.azw*' -exec cp -n {} /toread ;
find /books -name '*.mobi' -exec cp -n {} /toread ;
I want to get rid of the repetitiveness of these commands and batch the actions into one?
command-line unix find
add a comment |
I have a bash file with the following commands to copy books from my books folder into my toread / Read Later folder
find /books -name '*.pdf' -exec cp -n {} /toread ;
find /books -name '*.epub' -exec cp -n {} /toread ;
find /books -name '*.azw*' -exec cp -n {} /toread ;
find /books -name '*.mobi' -exec cp -n {} /toread ;
I want to get rid of the repetitiveness of these commands and batch the actions into one?
command-line unix find
add a comment |
I have a bash file with the following commands to copy books from my books folder into my toread / Read Later folder
find /books -name '*.pdf' -exec cp -n {} /toread ;
find /books -name '*.epub' -exec cp -n {} /toread ;
find /books -name '*.azw*' -exec cp -n {} /toread ;
find /books -name '*.mobi' -exec cp -n {} /toread ;
I want to get rid of the repetitiveness of these commands and batch the actions into one?
command-line unix find
I have a bash file with the following commands to copy books from my books folder into my toread / Read Later folder
find /books -name '*.pdf' -exec cp -n {} /toread ;
find /books -name '*.epub' -exec cp -n {} /toread ;
find /books -name '*.azw*' -exec cp -n {} /toread ;
find /books -name '*.mobi' -exec cp -n {} /toread ;
I want to get rid of the repetitiveness of these commands and batch the actions into one?
command-line unix find
command-line unix find
edited Dec 27 '18 at 22:34
Kamil Maciorowski
26.1k155679
26.1k155679
asked Dec 27 '18 at 0:40
TlinkTlink
154
154
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
-o
in find
expression is logical "or". There's a quirk though: juxtaposition (which is an implied "and" operator) takes precedence over the -o
operator. For this reason you often need parentheses. They should be escaped or quoted, otherwise they will be interpreted by the shell:
find /books ( -name '*.pdf' -o -name '*.epub' -o -name '*.azw*' -o -name '*.mobi' ')' -exec cp -n {} /toread ;
Note I deliberately escaped the opening parenthesis and quoted the closing one, just to show the two ways.
Without parentheses the -exec
part would apply only to *.mobi
files (compare this question).
Thanks @KamilMaciorowski, finally upvoting!
– Tlink
Dec 27 '18 at 0:57
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
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/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%2fsuperuser.com%2fquestions%2f1387979%2fcombining-multiple-find-commands-into-one%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
-o
in find
expression is logical "or". There's a quirk though: juxtaposition (which is an implied "and" operator) takes precedence over the -o
operator. For this reason you often need parentheses. They should be escaped or quoted, otherwise they will be interpreted by the shell:
find /books ( -name '*.pdf' -o -name '*.epub' -o -name '*.azw*' -o -name '*.mobi' ')' -exec cp -n {} /toread ;
Note I deliberately escaped the opening parenthesis and quoted the closing one, just to show the two ways.
Without parentheses the -exec
part would apply only to *.mobi
files (compare this question).
Thanks @KamilMaciorowski, finally upvoting!
– Tlink
Dec 27 '18 at 0:57
add a comment |
-o
in find
expression is logical "or". There's a quirk though: juxtaposition (which is an implied "and" operator) takes precedence over the -o
operator. For this reason you often need parentheses. They should be escaped or quoted, otherwise they will be interpreted by the shell:
find /books ( -name '*.pdf' -o -name '*.epub' -o -name '*.azw*' -o -name '*.mobi' ')' -exec cp -n {} /toread ;
Note I deliberately escaped the opening parenthesis and quoted the closing one, just to show the two ways.
Without parentheses the -exec
part would apply only to *.mobi
files (compare this question).
Thanks @KamilMaciorowski, finally upvoting!
– Tlink
Dec 27 '18 at 0:57
add a comment |
-o
in find
expression is logical "or". There's a quirk though: juxtaposition (which is an implied "and" operator) takes precedence over the -o
operator. For this reason you often need parentheses. They should be escaped or quoted, otherwise they will be interpreted by the shell:
find /books ( -name '*.pdf' -o -name '*.epub' -o -name '*.azw*' -o -name '*.mobi' ')' -exec cp -n {} /toread ;
Note I deliberately escaped the opening parenthesis and quoted the closing one, just to show the two ways.
Without parentheses the -exec
part would apply only to *.mobi
files (compare this question).
-o
in find
expression is logical "or". There's a quirk though: juxtaposition (which is an implied "and" operator) takes precedence over the -o
operator. For this reason you often need parentheses. They should be escaped or quoted, otherwise they will be interpreted by the shell:
find /books ( -name '*.pdf' -o -name '*.epub' -o -name '*.azw*' -o -name '*.mobi' ')' -exec cp -n {} /toread ;
Note I deliberately escaped the opening parenthesis and quoted the closing one, just to show the two ways.
Without parentheses the -exec
part would apply only to *.mobi
files (compare this question).
edited Dec 27 '18 at 22:32
answered Dec 27 '18 at 0:55
Kamil MaciorowskiKamil Maciorowski
26.1k155679
26.1k155679
Thanks @KamilMaciorowski, finally upvoting!
– Tlink
Dec 27 '18 at 0:57
add a comment |
Thanks @KamilMaciorowski, finally upvoting!
– Tlink
Dec 27 '18 at 0:57
Thanks @KamilMaciorowski, finally upvoting!
– Tlink
Dec 27 '18 at 0:57
Thanks @KamilMaciorowski, finally upvoting!
– Tlink
Dec 27 '18 at 0:57
add a comment |
Thanks for contributing an answer to Super User!
- 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%2fsuperuser.com%2fquestions%2f1387979%2fcombining-multiple-find-commands-into-one%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