find -exec {} + argument list limit
I know that when the maximum argument list size is reached, xargs
keeps creating new lists until all of the files are included;
but does find -exec <command> {} +
do the same thing or will it not work if the size of the list exceeds the output of getconf ARG_MAX
?
find xargs arguments
add a comment |
I know that when the maximum argument list size is reached, xargs
keeps creating new lists until all of the files are included;
but does find -exec <command> {} +
do the same thing or will it not work if the size of the list exceeds the output of getconf ARG_MAX
?
find xargs arguments
add a comment |
I know that when the maximum argument list size is reached, xargs
keeps creating new lists until all of the files are included;
but does find -exec <command> {} +
do the same thing or will it not work if the size of the list exceeds the output of getconf ARG_MAX
?
find xargs arguments
I know that when the maximum argument list size is reached, xargs
keeps creating new lists until all of the files are included;
but does find -exec <command> {} +
do the same thing or will it not work if the size of the list exceeds the output of getconf ARG_MAX
?
find xargs arguments
find xargs arguments
asked Nov 20 at 10:32
EmmaV
1,1091331
1,1091331
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Yes, find -exec ... {} +
runs the given command as many times as necessary to accommodate all the arguments without exceeding the maximum argument list size in each invocation. This is specified by POSIX:
If the primary expression is punctuated by a <plus-sign>, the primary shall always evaluate as true, and the pathnames for which the primary is evaluated shall be aggregated into sets. [...] An argument containing only the two characters "
{}
" shall be replaced by the set of aggregated pathnames, with each pathname passed as a separate argument to the invoked utility in the same order that it was aggregated. The size of any set of two or more pathnames shall be limited such that execution of the utility does not cause the system's {ARG_MAX} limit to be exceeded.
(emphasis mine).
add a comment |
It does the same thing, i.e. using -exec ... {} +
will execute the given utilitity with batches of found pathnames, one or several times. This is what this syntax is for.
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%2f482930%2ffind-exec-argument-list-limit%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
Yes, find -exec ... {} +
runs the given command as many times as necessary to accommodate all the arguments without exceeding the maximum argument list size in each invocation. This is specified by POSIX:
If the primary expression is punctuated by a <plus-sign>, the primary shall always evaluate as true, and the pathnames for which the primary is evaluated shall be aggregated into sets. [...] An argument containing only the two characters "
{}
" shall be replaced by the set of aggregated pathnames, with each pathname passed as a separate argument to the invoked utility in the same order that it was aggregated. The size of any set of two or more pathnames shall be limited such that execution of the utility does not cause the system's {ARG_MAX} limit to be exceeded.
(emphasis mine).
add a comment |
Yes, find -exec ... {} +
runs the given command as many times as necessary to accommodate all the arguments without exceeding the maximum argument list size in each invocation. This is specified by POSIX:
If the primary expression is punctuated by a <plus-sign>, the primary shall always evaluate as true, and the pathnames for which the primary is evaluated shall be aggregated into sets. [...] An argument containing only the two characters "
{}
" shall be replaced by the set of aggregated pathnames, with each pathname passed as a separate argument to the invoked utility in the same order that it was aggregated. The size of any set of two or more pathnames shall be limited such that execution of the utility does not cause the system's {ARG_MAX} limit to be exceeded.
(emphasis mine).
add a comment |
Yes, find -exec ... {} +
runs the given command as many times as necessary to accommodate all the arguments without exceeding the maximum argument list size in each invocation. This is specified by POSIX:
If the primary expression is punctuated by a <plus-sign>, the primary shall always evaluate as true, and the pathnames for which the primary is evaluated shall be aggregated into sets. [...] An argument containing only the two characters "
{}
" shall be replaced by the set of aggregated pathnames, with each pathname passed as a separate argument to the invoked utility in the same order that it was aggregated. The size of any set of two or more pathnames shall be limited such that execution of the utility does not cause the system's {ARG_MAX} limit to be exceeded.
(emphasis mine).
Yes, find -exec ... {} +
runs the given command as many times as necessary to accommodate all the arguments without exceeding the maximum argument list size in each invocation. This is specified by POSIX:
If the primary expression is punctuated by a <plus-sign>, the primary shall always evaluate as true, and the pathnames for which the primary is evaluated shall be aggregated into sets. [...] An argument containing only the two characters "
{}
" shall be replaced by the set of aggregated pathnames, with each pathname passed as a separate argument to the invoked utility in the same order that it was aggregated. The size of any set of two or more pathnames shall be limited such that execution of the utility does not cause the system's {ARG_MAX} limit to be exceeded.
(emphasis mine).
answered Nov 20 at 10:35
Stephen Kitt
164k24365444
164k24365444
add a comment |
add a comment |
It does the same thing, i.e. using -exec ... {} +
will execute the given utilitity with batches of found pathnames, one or several times. This is what this syntax is for.
add a comment |
It does the same thing, i.e. using -exec ... {} +
will execute the given utilitity with batches of found pathnames, one or several times. This is what this syntax is for.
add a comment |
It does the same thing, i.e. using -exec ... {} +
will execute the given utilitity with batches of found pathnames, one or several times. This is what this syntax is for.
It does the same thing, i.e. using -exec ... {} +
will execute the given utilitity with batches of found pathnames, one or several times. This is what this syntax is for.
edited Nov 20 at 10:54
answered Nov 20 at 10:36
Kusalananda
121k16229372
121k16229372
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.
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%2funix.stackexchange.com%2fquestions%2f482930%2ffind-exec-argument-list-limit%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