In Linux, how to copy all the files not starting with a given string?
A variation on Konrad answer, using cp
option -t
to specify target directory simplifies the last command. It creates a single cp
process to copy all the files.
ls src_folder | grep -v '^String' | xargs cp -t dest_folder
- list all files in
src_folder
- filter out all those that start with
String
- copy all remaining files to
dest_dir
ls src_folder | grep -v '^String' | xargs -J % -n1 cp % dest_folder
This will
- list all files in
src_folder
- filter out all those that start with
String
(so that the rest remains) - Invoke the
cp
command- once for each of those files (
-n1
says to callcp
for each of them separately) - using, as its arguments,
% dest_folder
, where%
is replaced by the actual file name.
- once for each of those files (