Сбой команды копирования в Mac Terminal с «Нет такого файла или каталога» - PullRequest
0 голосов
/ 18 февраля 2019

Это должно быть просто, но я получаю странные результаты.

У меня есть папка с подпапками, содержащая ~ 4000 файлов.Я пытаюсь скопировать только файлы определенного типа в другую папку, сохраняя иерархию подпапок.

Команда:

cp -R /Users/Steve/Desktop/Hardscapes/*.LOB /Users/Steve/Desktop/Temp

завершается с сообщением:

"/Users/Steve/Desktop/Hardscapes/*.LOB: No such file or directory".

Я создал команду, набрав cp -R, затем перетащив исходную папку в окно терминала, добавив *.LOB после / и перетащив пункт назначения.папку в окно терминала.

Устранение неполадок:

  1. замена *.LOB на *.* выдает ту же ошибку.

  2. cp -R /Users/Steve/Desktop/Hardscapes/ /Users/Steve/Desktop/Temp копирует всю папку Hardscapes в Temp со всеми ее подпапками и файлами.

Спасибо за вашу помощь и предложения.

РЕДАКТИРОВАТЬ: Папка Hardscapes содержит только другие папки.Если я запускаю указанную выше команду, используя одну из этих папок в качестве источника, содержимое копируется с точностью до конца.Сама папка Hardscapes не содержит .LOB файлов - они находятся только во вложенных папках.

Так что, может быть, в этом проблема, cp не может найти файлы, соответствующие Hardscapes/*.LOB?Но я подумал, что переключатель -R должен был указывать, что он просматривает все подпапки.

Затем я помещаю файл с именем Test.LOB в папку Hardscapes.Приведенная выше команда копирует только этот файл и ни одну из подпапок.Похоже, переключатель -R не выполняет свою работу.Правильный ли у меня синтаксис?

1 Ответ

0 голосов
/ 19 февраля 2019

Попробуйте:

rsync -a --prune-empty-dirs --include '*/' --include '*.LOB' --exclude '*' /Users/Steve/Desktop/Hardscapes/ /Users/Steve/Desktop/Temp

Как вы уже упоминали, каталог Hardscapes сам по себе не содержит .LOB файлов.Вот почему ваша маска /Users/Steve/Desktop/Hardscapes/*.LOB приводит к тому, что не найдено ни одного файла.

...