Каталог копии от ext3 до FAT32, игнорирующего символьные ссылки, каналы, и т.д.

Я пытаюсь записать сценарий оболочки, в котором я рекурсивно копирую каталог в карту с интерфейсом USB. Мне нужно возвращаемое значение операции копии в целях проверки ошибок. Я попробовал

cp -a /var/mydir /media/usbdrive

и

cp -r /var/mydir /media/usbdrive

а также немногие другие, но проблема - то, что я всегда получаю ошибки, такие как:

Cannot create fifo: /path/to/fifo Operation not permitted

Пока это предупреждения, и операция копии продолжается, я возвратил неуспешный код ошибки из операции, которая портит обработку ошибок в моем сценарии. Как я могу скопировать рекурсивно и проигнорировать fifos, символьные ссылки и другие объекты, которые не допустимы в файловой системе FAT32?

1
задан 13.11.2009, 13:13

1 ответ

Необходимо смочь сделать это использование find команда. -type опция позволяет Вам ограничивать виды файлов, которые Вы находите, таким образом, можно проигнорировать символьные ссылки и каналы и т.д., и -exec опция позволяет Вам выполнять команду для каждого из файлов, которые Вы находите.

Сначала создайте все каталоги на карте с интерфейсом USB:

cd /var/mydir
find * -type d -exec mkdir /media/usbdrive/{} \;

Затем скопируйте все простые файлы:

cd /var/mydir
find . -type f -exec cp {} /media/usbdrive/{} \;
2
ответ дан 12.12.2019, 13:23

Теги

Похожие вопросы