Я хочу cp aaa/deep/sea/blob.psd
чтобыbbb/deep/sea/blob.psd
Как сделать копию , если deep
и sea
каталоги не существуют под bbb
таким образом , что копия и создает каталоги, которые необходимы и копирует файл?
Прямо сейчас я
No such file or directory
так глубоко и моря не существует.
Я просмотрел справочные страницы человека и другие вопросы, но ничего не выскакивает на меня.
Самое близкое, что у меня есть, это использование rcp
для каталога:
rcp -r aaa/deep/sea/ bbb/deep/sea/
хотя это копирует весь каталог и содержимое, и я просто хочу один файл. Попытка сделать это однако далаcp: cannot create regular file bbb/deep/sea/blob.psd' such file or directory
rsync
Ответ будет только создать 1 каталог, и ,pax
кажется, не является общим.-d
вместо-D
Mac.755
(rwxr-xr-x
), что, вероятно, нежелательно. Вы можете указать что-то еще с помощью-m
переключателя, но я не смог найти способ просто сохранить права доступа к файлу :(Со стандартными (POSIX / Unix) командами вы получаете:
источник
info tar
- где-то в разделе, посвященном вопросам переносимости, - я думаю, вы обнаружите, что GNUtar
заявляет, что он полностьюpax
совместим. В любом случае, хотя я так и не удосужился проверить эти претензии.Я не знаю способ сделать это с помощью
cp
, но это, безусловно, возможно с помощьюrsync
:где
dir
каталог, который не должен существовать. Есть много других способов добиться того же, используя другие команды.источник
rsync -R
сохранить каталог heirarchyrsync
требуется больше опций, но вопрос был просто о создании несуществующего целевого каталога, отсюда мой краткий ответ :)cp
имеет--parents
возможность.Если у вас нет
pax
(это предписано POSIX, как стандартная замена cpio и tar, у которых было слишком много несовместимостей для стандартизации), используйтеcpio -p
илиtar -cf - … | tar -xf -
вместо этого.источник