- Копирование файлов с сохранением прав доступа linux
- Как копировать файлы и каталоги в Linux
- How to Copy Files and Directories in Linux
- Чтобы иметь возможность копировать файлы и каталоги, у вас должны быть как минимум права на чтение исходного файла и права на запись в целевой каталог.
- Копирование файлов с помощью cp команды
- Скопируйте файл в каталог
- Скопируйте несколько файлов
- Копирование каталогов с помощью cp команды
- Копирование файлов и каталогов с помощью rsync команды
- Вывод
- Как копировать файлы и каталоги в Linux
- Копирование файлов с помощью команды cp
- Скопируйте файл в каталог
- Копировать несколько файлов
- Копирование каталогов с помощью команды cp
- Копирование файлов и каталогов с помощью команды rsync
- Выводы
- Как полностью сохранить права при переносе файлов на другой сервер?
- Re: Как полностью сохранить права при переносе файлов на другой сервер?
- Re: Как полностью сохранить права при переносе файлов на другой сервер?
- Re: Как полностью сохранить права при переносе файлов на другой сервер?
- Re: Как полностью сохранить права при переносе файлов на другой сервер?
- Re: Как полностью сохранить права при переносе файлов на другой сервер?
- Re: Как полностью сохранить права при переносе файлов на другой сервер?
- Re: Как полностью сохранить права при переносе файлов на другой сервер?
- Re: Как полностью сохранить права при переносе файлов на другой сервер?
- Re: Как полностью сохранить права при переносе файлов на другой сервер?
- Первый шаг в мир линукс
- Изучайте linux вместе с нами
- Как скопировать права доступа к файлу и владение другим файлом в Linux
- Копировать права доступа к файлу в другой файл
- Скопировать право собственности на файл в другой файл
Копирование файлов с сохранением прав доступа 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 является наиболее широко используемыми инструментами.
Чтобы иметь возможность копировать файлы и каталоги, у вас должны быть как минимум права на чтение исходного файла и права на запись в целевой каталог.
Копирование файлов с помощью 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 для копирования каталогов.
Чтобы иметь возможность копировать файлы и каталоги, у вас должны быть как минимум права на чтение исходного файла и права записи в целевой каталог.
Копирование файлов с помощью команды 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?
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, поделитесь с нами через форму обратной связи ниже.
Источник