Копирование файлов с сохранением прав доступа linux

Содержание
  1. Копирование файлов с сохранением прав доступа linux
  2. Как копировать файлы и каталоги в Linux
  3. How to Copy Files and Directories in Linux
  4. Чтобы иметь возможность копировать файлы и каталоги, у вас должны быть как минимум права на чтение исходного файла и права на запись в целевой каталог.
  5. Копирование файлов с помощью cp команды
  6. Скопируйте файл в каталог
  7. Скопируйте несколько файлов
  8. Копирование каталогов с помощью cp команды
  9. Копирование файлов и каталогов с помощью rsync команды
  10. Вывод
  11. Как копировать файлы и каталоги в Linux
  12. Копирование файлов с помощью команды cp
  13. Скопируйте файл в каталог
  14. Копировать несколько файлов
  15. Копирование каталогов с помощью команды cp
  16. Копирование файлов и каталогов с помощью команды rsync
  17. Выводы
  18. Как полностью сохранить права при переносе файлов на другой сервер?
  19. Re: Как полностью сохранить права при переносе файлов на другой сервер?
  20. Re: Как полностью сохранить права при переносе файлов на другой сервер?
  21. Re: Как полностью сохранить права при переносе файлов на другой сервер?
  22. Re: Как полностью сохранить права при переносе файлов на другой сервер?
  23. Re: Как полностью сохранить права при переносе файлов на другой сервер?
  24. Re: Как полностью сохранить права при переносе файлов на другой сервер?
  25. Re: Как полностью сохранить права при переносе файлов на другой сервер?
  26. Re: Как полностью сохранить права при переносе файлов на другой сервер?
  27. Re: Как полностью сохранить права при переносе файлов на другой сервер?
  28. Первый шаг в мир линукс
  29. Изучайте linux вместе с нами
  30. Как скопировать права доступа к файлу и владение другим файлом в Linux
  31. Копировать права доступа к файлу в другой файл
  32. Скопировать право собственности на файл в другой файл

Копирование файлов с сохранением прав доступа linux

Для копирования файлов используйте команду cp («copy»). Она принимает два аргумента: исходный файл, который существует и должен быть скопирован, и целевой файл, который определяет имя файла-копии. cp создает идентичную копию файла, присваивая ей указанное имя целевого файла. Если файл с таким именем уже существует, cp перезаписывает его. Она не изменяет исходный файл.

Чтобы скопировать файл `my-copy’ в файл `neighbor-copy’, наберите:

$ cp my-copy neighbor-copy [Enter]

Эта команда создает новый файл с именем `neighbor-copy’, который является идентичным файлу `my-copy’ во всех отношениях, кроме имени файла, имени владельца, группы и времени модификации — новый файл имеет время модификации, указывающее момент его копирования. Файл `my-copy’ не изменяется.

Чтобы сохранить все атрибуты оригинального файла, включая его время модификации, имя владельца, группу и права доступа, используйте ключ `-p’ («preserve»)(сохранить).

Чтобы скопировать файл `my-copy’ в файл `neighbor-copy’, сохранив все атрибуты исходного файла в копии, наберите:

$ cp -p my-copy neighbor-copy [Enter]

Эта команда копирует файл `my-copy’ в новый файл `neighbor-copy’, полностью идентичный исходному по всем аспектам, кроме имени файла.

Чтобы скопировать каталог вместе со всеми подкаталогами и файлами, которые он содержит, используйте опцию -R — она создает рекурсивную копию указанного каталога и его содержимого.

Чтобы скопировать каталог `public_html’ вместе со всеми его файлами и подкаталогами, в новый каталог `private_html’, введите:

$ cp -R public_html private_html [Enter]

Опция `-R’ не копирует файлы, являющиеся символической ссылкой, и не сохраняет оригинальные права доступа к файлам. Чтобы скопировать каталог рекурсивно, включая все ссылки и учитывая все права доступа, используйте опцию `-a’ («archive»). Это полезно для резервного копирования больших по объему деревьев каталогов.

Чтобы сделать резервную копию дерева каталогов `public_html’ в каталог `private_html’, введите:

Источник

Как копировать файлы и каталоги в Linux

How to Copy Files and Directories in Linux

Чтобы иметь возможность копировать файлы и каталоги, у вас должны быть как минимум права на чтение исходного файла и права на запись в целевой каталог.

Копирование файлов и каталогов является одной из наиболее распространенных задач, которые вы выполняете при работе в командной строке. В Linux есть несколько команд для копирования файлов с cp и rsync является наиболее широко используемыми инструментами.

Читайте также:  Intel rapid storage technology driver windows 2003

Чтобы иметь возможность копировать файлы и каталоги, у вас должны быть как минимум права на чтение исходного файла и права на запись в целевой каталог.

Копирование файлов с помощью cp команды

В операционных системах Linux и Unix cp команда используется для копирования файлов и каталогов.

Самый простой вариант использования — скопировать файл в текущем рабочем каталоге. Например, чтобы скопировать файл с именем file.txt в файл с именем file_backup.txt в текущем каталоге , вы должны выполнить следующую команду:

Если целевой файл существует, он будет перезаписан. Чтобы получить запрос на подтверждение перед перезаписью файлов, используйте -i опцию.

По умолчанию при использовании cp команды для копирования файла новый файл будет принадлежать пользователю, выполняющему команду. Используйте -p опцию, чтобы сохранить режим файла, владельца и метки времени :

Еще одна полезная опция -v . При использовании этой опции команда печатает, что делается:

Скопируйте файл в каталог

Чтобы скопировать файл в каталог, укажите абсолютный или относительный путь к каталогу. Если каталог назначения опущен, файл копируется в текущий каталог.

В следующем примере мы копируем файл file.txt в /backup каталог:

Если в качестве места назначения указано только имя каталога, то скопированный файл будет иметь то же имя, что и исходный файл.

Если вы хотите скопировать файл под другим именем, вам нужно указать желаемое имя файла:

Команда выше скопирует файл в указанный каталог как new_file.txt .

Скопируйте несколько файлов

Для одновременного копирования нескольких файлов и каталогов укажите имена исходных файлов и каталогов, а затем конечный каталог в качестве последнего аргумента:

При копировании нескольких файлов местом назначения должен быть каталог.

Команда cp также позволяет использовать сопоставление с образцом. Например, чтобы скопировать все .png файлы из текущего каталога в /backup каталог, вы должны использовать:

Копирование каталогов с помощью cp команды

Команда выше создаст каталог назначения и рекурсивно скопирует все файлы и подкаталоги из источника в каталог назначения.

Если целевой каталог уже существует, сам исходный каталог и все его содержимое будут скопированы в целевой каталог. Чтобы скопировать только файлы и подкаталоги, но не целевые каталоги, используйте -T параметр:

Параметры, используемые при копировании файлов, также можно использовать при копировании каталога. Основное отличие заключается в том, что при копировании каталогов необходимо использовать эту -R опцию.

Копирование файлов и каталогов с помощью rsync команды

rsync это быстрая и универсальная утилита командной строки, которая синхронизирует файлы и каталоги между двумя местоположениями. Он может быть использован для копирования файлов в локальные и удаленные места.

rsync включает в себя ряд параметров, которые контролируют каждый аспект его поведения. Наиболее полезный вариант — -a это рекурсивное копирование каталогов, передача специальных и блочных устройств, сохранение символических ссылок, времени модификации, группы, владельца и разрешений.

Чтобы скопировать один файл из одного места в другое, вы должны выполнить следующую команду:

Если целевой файл существует, он rsync будет перезаписан.

Эту же команду можно использовать для копирования каталога:

rsync угрожает исходным каталогам, которые заканчиваются косой чертой по- / другому. Если вы добавите косую черту в исходный каталог, команда скопирует только содержимое исходного каталога в целевой каталог. Если завершающий слеш опущен, rsync будет скопирован исходный каталог в целевой каталог. Самый безопасный вариант — всегда включать косую черту / как в пункте назначения, так и в источнике.

Чтобы узнать больше о rsync проверке следующих статей:

Вывод

В этом руководстве мы показали вам , как копировать файлы и каталоги в Linux и Unix системах , основанных на использовании cp и rsync утилиты.

Источник

Как копировать файлы и каталоги в Linux

Копирование файлов и каталогов — одна из наиболее распространенных задач, которые вы будете выполнять при работе в командной строке. В Linux есть несколько команд для копирования файлов, наиболее широко используемые инструменты — cp и rsync .

Обычной практикой является использование команды cp для копирования файлов и rsync для копирования каталогов.

Читайте также:  Microsoft defender windows 10 добавить исключение

Чтобы иметь возможность копировать файлы и каталоги, у вас должны быть как минимум права на чтение исходного файла и права записи в целевой каталог.

Копирование файлов с помощью команды cp

В операционных системах Linux и Unix команда cp используется для копирования файлов и каталогов.

Самый простой вариант использования — скопировать файл в текущий рабочий каталог. Например, чтобы скопировать файл с именем file.txt в файл с именем file_backup.txt в текущем каталоге , вы должны выполнить следующую команду:

Если целевой файл существует, он будет перезаписан. Чтобы получить запрос на подтверждение перед перезаписью файлов, используйте параметр -i .

По умолчанию при использовании команды cp для копирования файла новый файл будет принадлежать пользователю, выполняющему команду. Используйте параметр -p чтобы сохранить режим файла, владельца и временные метки :

Другой вариант, который может быть полезен, — это -v . При использовании этой опции команда печатает, что делается:

Скопируйте файл в каталог

Чтобы скопировать файл в каталог, укажите абсолютный или относительный путь к каталогу. Если целевой каталог не указан, файл копируется в текущий каталог.

В следующем примере мы file.txt файл file.txt в file.txt /backup :

При указании в качестве места назначения только имени каталога скопированный файл будет иметь то же имя, что и исходный файл.

Если вы хотите скопировать файл под другим именем, вам необходимо указать желаемое имя файла:

Приведенная выше команда скопирует файл в указанный каталог как new_file.txt .

Копировать несколько файлов

Чтобы скопировать сразу несколько файлов и каталогов, укажите имена исходных файлов и каталогов, за которыми следует каталог назначения в качестве последнего аргумента:

При копировании нескольких файлов местом назначения должен быть каталог.

Команда cp также позволяет использовать сопоставление с образцом. Например, чтобы скопировать все файлы .png из текущего каталога в каталог /backup , вы должны использовать:

Копирование каталогов с помощью команды cp

Чтобы скопировать каталог, включая все его файлы и подкаталоги, используйте параметр -R или -r . В следующем примере мы копируем каталог Pictures в Pictures_backup :

Приведенная выше команда создаст каталог назначения и рекурсивно скопирует все файлы и подкаталоги из источника в каталог назначения.

Если целевой каталог уже существует, сам исходный каталог и его содержимое копируются в целевой каталог. Чтобы скопировать только файлы и подкаталоги, но не целевой каталог, используйте параметр -T :

Параметры, используемые при копировании файлов, также могут использоваться при копировании каталогов. Основное отличие состоит в том, что при копировании каталогов необходимо использовать параметр -R .

Копирование файлов и каталогов с помощью команды rsync

rsync — это быстрая и универсальная утилита командной строки, которая синхронизирует файлы и каталоги между двумя местоположениями. Его можно использовать для копирования файлов в локальные и удаленные места.

rsync включает множество параметров, которые контролируют каждый аспект его поведения.

Наиболее полезная опция -a которая рекурсивно копирует каталоги, передает специальные и блочные устройства и сохраняет символические ссылки, время модификации, группу, владение и разрешения.

Чтобы скопировать один файл из одного места в другое, вы должны выполнить следующую команду:

Если целевой файл существует, rsync перезапишет его.

Эту же команду можно использовать для копирования каталога:

rsync по-разному rsync исходным каталогам, заканчивающимся косой чертой / . Если вы добавите завершающую косую черту в исходный каталог, команда скопирует только содержимое исходного каталога в целевой каталог. Если косая черта в конце опущена, rsync скопирует исходный каталог в целевой каталог. Самый безопасный вариант — всегда включать косую черту / как в месте назначения, так и в источнике.

Чтобы узнать больше о rsync прочтите следующие статьи:

Выводы

Мы показали вам, как копировать файлы и каталоги в системах на базе Linux и Unix, используя утилиты cp и rsync .

Если у вас есть вопросы, оставьте комментарий ниже.

Источник

Как полностью сохранить права при переносе файлов на другой сервер?

Нужно перенести файлы с 1 сервера на другой с сохранением все прав. У scp есть только опция -p, сохраняющая некоторые параметры (время и.тп), но не права. Как лучше перенести? Использовать tar? А что будет, если например на srv1 файл принадлежит user1, которого нет на сервере2?

Читайте также:  Все обновления для windows 10 1607

Re: Как полностью сохранить права при переносе файлов на другой сервер?

А если пользователя такого не будет, то владелец файла будет ID-номер который соответствовал ID-номеру юзера с переносимой машины.

Re: Как полностью сохранить права при переносе файлов на другой сервер?

Да

>А что будет, если например на srv1 файл принадлежит user1, которого нет на сервере2?

ls -l покаже цифровые ID.

Re: Как полностью сохранить права при переносе файлов на другой сервер?

А как при этом сохранить время создания файла и последнего обращения к нему?

Распаковывать я так понимаю надо будет так tar -xzvf arx.tar.gz -C /
потому что если сделать это в текущей папке без -С получу

[ушел читать ман tar]

Re: Как полностью сохранить права при переносе файлов на другой сервер?

Да, еще, получается мне надо будет еще скопировать /etc/passwd /etc/shadow, потому что если на старом сервере файл принадлежал user1 а на новом нету юзера в то получу грабли? Блин, не хотелось бы, там дохрена юзеров, хотелось избавится от уже неактульных.

p.s. хм, если я тупо скопирую /etc/passwd /etc/shadow рискую получить вообще не работающую систему. Например /var/cache/squid принадлежит пользователю squid запускается под юзером а с переносом /etc/shadow id squid-a станет например 200, он не сможет записать в /var/cache/squid и настанет глобальный капец?

Re: Как полностью сохранить права при переносе файлов на другой сервер?

копируется через тар все примерно так:

tar cf — | ssh server -l root «(cd dir2; tar xfv -)»

dir1 это директория откуда надо копировать, dir2 это директория на удаленном сервере в которую надо копировать. на удаленный сервер лучше всего логиниться под root, чтобы хватило прав на высталвение прав :)) простите за каламбур.

Re: Как полностью сохранить права при переносе файлов на другой сервер?

А тебе не кажется, что ты от одного вопроса (копирования файла с компа на комп) перешел к другому (миграция с сервера на сервер)?

Re: Как полностью сохранить права при переносе файлов на другой сервер?

Re: Как полностью сохранить права при переносе файлов на другой сервер?

По-моему tar умеет при разворачивании сохранять владельца/группу как по имени, так и по uid/gid.

Re: Как полностью сохранить права при переносе файлов на другой сервер?

Источник

Первый шаг в мир линукс

Изучайте linux вместе с нами

Как скопировать права доступа к файлу и владение другим файлом в Linux

Предполагая вы только, что создали новый файл и хотите, чтобы у него были те же разрешения и право владения как у более старого файла.

В этой статье мы покажем вам, как копировать права доступа и владение из одного файла в другой файл в Linux с помощью команд chmod и chown соответственно.

Копировать права доступа к файлу в другой файл

Чтобы скопировать права доступа к файлу из одного файла в другой файл, используйте команду chmod с —reference переключателем в следующем синтаксисе, где reference_file — это файл, из которого будут скопированы разрешения, а не указание режима (то есть разрешения в восьмеричном или числовом режиме) для файла.

Скопировать право собственности на файл в другой файл

Аналогично, чтобы скопировать владельца из другого файла, используйте команду chown с —reference переключателем, также используя следующий синтаксис, где reference_file — это файл, из которого будет скопирован владелец и группа, а не указание владельца: значения группы для файла.

Вы также можете скопировать права доступа к файлам и права собственности из одного файла в несколько файлов, как показано ниже.

Для получения дополнительной информации обратитесь к справочным страницам chown и chmod.

Если вы знаете какой-либо другой способ копирования или клонирования прав доступа к файлам в Linux, поделитесь с нами через форму обратной связи ниже.

Источник

Оцените статью