Kev is better, but this will also work:
find "/home/folder" -maxdepth 1 | sed -e "/^\/home\/folder$/d" -e "/^\/home\/folder\/subfolder5$/d" -e "/^\/home\/folder\/subfolder7$/d" -e "s/^/cp \-r /" -e "s/$/ \/home\/target/" | cat
Clarification:
find "/home/folder" -maxdepth 1 | // get all files and dirs under /home/folder, pipe output sed -e "/^\/home\/folder$/d" // have sed strip the path being searched, or the cp -r we prepend later will pickup the excluded dirs again. -e "/^\/home\/folder\/subfolder5$/d" // have sed strip subfolder5 -e "/^\/home\/folder\/subfolder7$/d" // have sed strip subfolder7 -e "s/^/cp \-r /" // have sed prepend "cp -r " to each line -e "s/$/ \/home\/target/" | cat // have sed append targetdir to each line.
Outputs:
cp -r /home/folder/subfolder9 /home/target cp -r /home/folder/subfolder1 /home/target cp -r /home/folder/file10 /home/target cp -r /home/folder/subfolder2 /home/target cp -r /home/folder/file1 /home/target cp -r /home/folder/subfolder3 /home/target
Change | cat | cat on | sh | sh to execute the command.
<A big disclaimer is coming here>
Best Kev Solution
jon
source share