我构建了一个脚本,用于仅在一个cp
命令行中复制多个与文件类型匹配的文件夹和文件,如下所示:
today=$(date +"%d-%m-%Y");
cp -r ./{dir1,dir2,dir3,..,fi.le1.ext1,*.ext2,*.ext3} "../Target_$today/Subdir_$today/"
现在,我要复制“ .ext3”的所有文件,但保留名称中包含“ lock”或“ -lock”的文件。因为那些文件是自动生成的,所以不需要备份它们(例如package-lock.json)。
我如何在之间不添加任何find
语句,而仅使用通配符和否定运算符来做到这一点?
使用扩展的glob:
shopt -s extglob nullglob
cp -r ./{dir1,dir2,dir3,..,fi.le1.ext1,!(*lock).ext2,*.ext3} "../Target_$today/Subdir_$today/"