некоторые люди ищут лучшего объяснения на страницах руководства, потому что не всегда понятно, что означало описание. Мне приходилось много раз копать и тестировать / экспериментировать, чтобы выяснить, что на самом деле происходит с определенной командой. Страница руководства grep может запутать меня в любой день.
Джо
2
Я понимаю ваше разочарование, но, по моему мнению, в большинстве случаев лучший способ учиться - это тестировать и экспериментировать.
Тройной
37
ИЛИ учитесь, задавая вопросы здесь, получая ответ понятным вам способом, а затем лучше понимайте, что и как тестировать и экспериментировать. Пожалуйста, имейте в виду, что работа для вас очень часто не работает для меня и т. Д. И т. Д.
Will Lanni
Ответы:
198
Рекурсивный означает, что cpкопирует содержимое каталогов, и если в каталоге есть подкаталоги, они также копируются (рекурсивно). Без -R, cpкоманда пропускает каталоги. -rто же самое -Rв Linux, в некоторых случаях отличается от некоторых других вариантов Unix.
По умолчанию cpсоздается новый файл, который имеет такое же содержимое, что и старый файл, и те же разрешения, но ограничен umask ; копия датируется с момента ее создания и принадлежит пользователю, выполняющему ее. С помощью этой -pопции копия имеет то же время модификации, то же время доступа и те же разрешения, что и оригинал. Он также имеет того же владельца и группу, что и оригинал, если пользователь, делающий копию, имеет разрешение на создание таких файлов.
-aОпция означает , -Rи -p, плюс несколько других вариантов сохранения. Он пытается создать копию, максимально приближенную к оригиналу: то же дерево каталогов, те же типы файлов, то же содержимое, те же метаданные (время, разрешения, расширенные атрибуты и т. Д.).
В принципе, если вы не хотите чего-то особенного, вам это никогда не понадобится, -rпотому что -a(для archive) всегда самое безопасное и, вероятно, то, что вы ожидали.
АМС
2
@ams Да, это хорошее резюме. Единственная распространенная причина для использования -r- это то, что вы используете какой-то вариант Unix, отличный от Linux, который не имеет -a, и обычно вы используете cp -rp. Или rsync -a.
Жиль
иногда разрешения позволяют -r, но не -a
DrCord
Не -r, не -R не работает в Ubuntu 18
Аркадий
16
Параметр -r или -R для «рекурсивный» означает, что он будет копировать все файлы, включая файлы внутри подпапок.
Указанная опция -a аналогична опции -dR, что означает, что она будет сохранять ссылки, а также копировать содержимое подкаталогов. Под сохранением ссылок подразумевается, что он не будет переходить по ссылкам, поскольку он рекурсивно копирует.
Ответы:
Рекурсивный означает, что
cp
копирует содержимое каталогов, и если в каталоге есть подкаталоги, они также копируются (рекурсивно). Без-R
,cp
команда пропускает каталоги.-r
то же самое-R
в Linux, в некоторых случаях отличается от некоторых других вариантов Unix.По умолчанию
cp
создается новый файл, который имеет такое же содержимое, что и старый файл, и те же разрешения, но ограничен umask ; копия датируется с момента ее создания и принадлежит пользователю, выполняющему ее. С помощью этой-p
опции копия имеет то же время модификации, то же время доступа и те же разрешения, что и оригинал. Он также имеет того же владельца и группу, что и оригинал, если пользователь, делающий копию, имеет разрешение на создание таких файлов.-a
Опция означает ,-R
и-p
, плюс несколько других вариантов сохранения. Он пытается создать копию, максимально приближенную к оригиналу: то же дерево каталогов, те же типы файлов, то же содержимое, те же метаданные (время, разрешения, расширенные атрибуты и т. Д.).источник
-r
потому что-a
(дляa
rchive) всегда самое безопасное и, вероятно, то, что вы ожидали.-r
- это то, что вы используете какой-то вариант Unix, отличный от Linux, который не имеет-a
, и обычно вы используетеcp -rp
. Илиrsync -a
.Параметр -r или -R для «рекурсивный» означает, что он будет копировать все файлы, включая файлы внутри подпапок.
Указанная опция -a аналогична опции -dR, что означает, что она будет сохранять ссылки, а также копировать содержимое подкаталогов. Под сохранением ссылок подразумевается, что он не будет переходить по ссылкам, поскольку он рекурсивно копирует.
источник