Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

let's say I'd like to find all the files with suffix .wzd under the current directory and archive all the files founded at a time, how can I do it?

the following doesn't work, by the way

find . -name "*.wzd" 2>/dev/null -exec tar -cvf wzd.tar {} \;
share|improve this question

Use -print0 with find to output null-delimited filenames, and pipe to tar using -T - --null to read null-delimited filenames from stdin.

find ... -print0 | tar ... -T - --null
share|improve this answer

backticks would work too:

tar -cvf wzd.tar `find . name "*.wzd" -printf "%f "`
share|improve this answer

-exec command {} +

This variant of the -exec action runs the specified command on the selected files, but the command line is built by appending each selected file name at the end; the total number of invocations of the command will be much less than the number of matched files. The command line is built in much the same way that xargs builds its command lines. Only one instance of '{}' is allowed within the command. The command is executed in the starting directory.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.