Как я могу скопировать целые каталоги и исключить определенные файлы в Unix - PullRequest
4 голосов
/ 14 марта 2011

У меня есть пакетный скрипт Unix, который копирует содержимое одного каталога (назовите его dir A) в другой (назовите его dir B).

Вот оператор копирования, который у меня есть в настоящее время.

cp -urL /path/to/dir/A /path/to/dir/B

Однако этот оператор копирует скрытые файлы.

Как исключить копирование любых скрытых файлов?

Ответы [ 2 ]

6 голосов
/ 14 марта 2011

Поставьте звездочку (*) для копирования, но игнорируйте скрытые файлы

cp -urL -r /path/to/dir/A/* /path/to/dir/B
3 голосов
/ 14 марта 2011

Если вы используете bash в качестве вашей оболочки, отключите опцию dotglob.

С man bash

dotglob Если установлено, bash включает имена файлов, начинающиеся с '.' в результаты расширения пути.

#!/bin/bash

shopt -u dotglob
cp -urL /path/to/dir/A /path/to/dir/B
...