Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
ls folder | grep -v [regexp] | xargs cp -t destination
-v, --invert-match
Selected lines are those not matching any of the specified patterns.
ls /web/test/www | grep -v .*\.svn.* | xargs cp -t /web/test/tmp
cp: cannot stat `app': No such file or directory
cp: cannot stat `libraries': No such file or directory
cp: cannot stat `public': No such file or directory
ls $1 | grep -v file1 | xargs cp $1 destination/$1cp -r path1/[^regexp] path2
не пойдёт? rsync -r --exclude=PATTERN from/ to/
#!/bin/bash
if [ $# -lt 3 ] ; then
echo "cpexclude usage: pathFrom pathTo excludeRegex"
exit 0
fi
pathFrom="$1"
pathTo="$2"
excludeRegex="$3"
# Copy everything
find "$pathFrom" -type f -not -regex "$excludeRegex" | while read A ; do {
[[ -d "$pathTo/${A%/*}" ]] || mkdir -p "$pathTo/${A%/*}"
cp -a "$A" "$pathTo/${A%/*}"
}
done
find . ! -iregex '.*gz' -exec cp -a '{}' \;
Как в linux консоли скопировать файлы и папки исключая некоторые из них по регулярному выражению