Я шукаю різницю між cp -rі cp -a. Що означає "рекурсивний" з точки зору копіювання файлів з папки?
Я шукаю різницю між cp -rі cp -a. Що означає "рекурсивний" з точки зору копіювання файлів з папки?
Відповіді:
Рекурсивний означає, що cpкопіюється вміст каталогів, а якщо в каталозі є підкаталоги, вони також копіюються (рекурсивно). Без -Rцього cpкоманда пропускає каталоги. -rзбігається з -RLinux, він відрізняється в деяких крайових випадках у деяких інших варіантах unix.
За замовчуванням cpстворює новий файл, який має той самий вміст, що і старий файл, і ті ж дозволи, але обмежені umask ; копія датується моментом копіювання та належить користувачеві, який виконує копію. За допомогою -pпараметра копія має той самий час модифікації, той же час доступу та ті ж дозволи, що й оригінал. Він також має того самого власника та групу, що й оригінал, якщо користувач, який робить копію, має дозвіл на створення таких файлів.
-aОпція означає , -Rі -p, плюс кілька інших варіантів збереження. Він намагається зробити копію, максимально наближену до оригіналу: те саме дерево каталогів, ті ж типи файлів, той самий вміст, ті ж метадані (часи, дозволи, розширені атрибути тощо).
-rтому що -a(для aріші) це завжди найбезпечніше і, ймовірно, те, що ви очікували, що це станеться.
-r- це те, що ви використовуєте інший варіант Unix, окрім Linux, якого немає -a, і зазвичай ви використовуєте cp -rp. Або rsync -a.
Параметр -r або -R для "рекурсивного" означає, що він буде копіювати всі файли, включаючи файли всередині папок.
Перерахований варіант -a такий же, як і -dR, що означає, що він буде зберігати посилання, а також копіювати вміст підкаталогів. Що означає збереження посилань, це те, що він не буде переходити посилання, оскільки він рекурсивно копіює.