Posts

Showing posts from October 4, 2009

Linux Using xargs to Copy All Files in Directory or Subdirectory

To copy all the files, for example, mp3 files in a directory/subdirectory to another directory in Linux, you can use the xargs command and the find but by using "sed" tool to also filter the quotes of file names. The command is pretty simple which is write down below. $> find . -name "*.mp3" | sed -r "s/'/\\\\\'/g" | xargs -t -I '{}' cp '{}' /media/disk/Music/ What it does, is that, it will find any files that ends with *.mp3 file extension from the current directory the command is being executed, and sed will will apply a regular expression to filter the quotes and replace it with "\'" (a slash and a single quote). After this, xargs command will catch the lines outputed by the find command but filtered with sed and executes a cp command and directs it to /media directory. find options: -name = specifies the name to find sed options: -r = will do an extended regular expression xargs options: -t = print the command l