Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » Помогите написать скрипт копирования

Ответить
Настройки темы
Помогите написать скрипт копирования

Аватара для Filariel

Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


У меня есть одна папка которую я копирую в другу вместе со всем ее содержимым.
И в ней есть ссылка на папку и ее я не хочу копировать так как начинает тянуть всю папку на которую эта ссылка ссылается.
Копирую таким образом cp -ipfdrR /share/test/* /mnt/shara_pcard2/test/
Подскажите как сделать так что бы копировалось все кроме этой ссылки !?

Отправлено: 15:19, 06-11-2006

 

Аватара для ruslandh

info man howto


Сообщения: 6958
Благодарности: 384

Профиль | Сайт | Отправить PM | Цитировать


Попробуем разобрать ключики :
cp -ipfdrR
Цитата man cp:
-i Спрашивает, нужно ли перезаписывать существующие файлы, в которые
происходит копирование. (Запрос выдается на стандартный вывод ошибок, а
ответ читается со стандартного ввода. Копирование осуществляется только
в случае положительного ответа).

-p Сохраняет исходные параметры файла, такие как владелец, группа, права
доступа (включая suid и sgid биты), время последней модификации и время
последнего доступа к файлу. В случае, если установка владельца или
группы приводит к ошибке, suid и sgid биты сбрасываются. (Заметим, что
впоследствии исходный файл и его копия могут иметь разное время
последнего доступа, так как операция копирования является доступом к
исходному файлу).

-f Если требуется, удаляет существующие файлы, в которые происходит
копирование. (См. выше)

-d Копирует символьные ссылки как символьные ссылки, а не файлы, на которые
они указывают, и сохраняет жесткие ссылки между исходными файлами в
копиях.

В file-utils 4.0 длинная опция --no-dereference была синонимом для опции
-d, но в file-utils 4.1 она является синонимом для опции -P, в то время
как опция -d эквивалентна опциям --no-dereference --preserve=links.


-R Копировать каталоги рекурсивно; правильно обрабатывать ситуации, когда
попадаются объекты, не являющиеся обычными файлами или каталогами.
(Так, копией FIFO или специального файла будет также являться FIFO или
специальный файл).

-r Копировать каталоги рекурсивно; выполнять какие-то, неопределенные
стандартом действия, когда попадаются объекты, не являющиеся обычными
файлами или каталогами. (Так, разрешается, и фактически одобряется,
наличие опции -r как синонима для -R. Однако, глупое поведение, которое
проявляет версия cp в GNU 4.0 не запрещается.)

ПОДРОБНОСТИ ВЕРСИИ GNU

-i, --interactive
Спрашивает, нужно ли перезаписывать существующие обычные файлы.

-f, --force
Удаляет существующие файлы в случае возникновения ошибки при открытии их
на чтение и никогда не спрашивает подтверждения перед тем как это
сделать. (Такое поведение начинается с версии file-utils 4.1. В file-
utils 4.0 эта опция была эквивалентна новой опции --remove-destination.)

-r В file-utils 4.1: синоним опции -R. В file-utils 4.0: Копирует каталоги
рекурсивно, копирует любые не-каталоги и не символьные ссылки (то есть
FIFO и специальные файлы), как если бы они были обычными файлами. Это
глупое поведение можно получить в file-utils 4.1 если указать опцию
--copy-contents.

-R, --recursive
Копирует каталоги рекурсивно, защищая не-каталоги.
Чего не хватает :
Цитата man cp:
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ POSIX 2003
Стандарт POSIX 1003.1-2003 добавляет три опции, которые определяют как
управлять символьными ссылками. Когда выполняется нерекурсивное копирование,
символьные ссылки разименовываются (берутся те объекты на которые они
указывают, вместо самой ссылки -- прим.пер.). Когда выполняется рекурсивное
копирование с использованием опции -r, результаты зависят от реализации. Когда
выполняется рекурсивное копирование с использованием опции -R:

-H Разименовывает символьные ссылки, указанные в списке параметров. Не
разименовывает символьные ссылки, которые встречаются во время
рекурсивного копирования, а просто копирует их.

-L Разименовывает все символьные ссылки, как заданные в списке параметров
так и встретившиеся во время рекурсивного копирования.

-P Не разименовывает никакие символьные ссылки, ни заданные в списке
параметров, ни встретившиеся во время рекурсивного копирования. Просто
копирует их как символьные ссылки.

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

-------
Поспешай не торопясь

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:01, 06-11-2006 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для Filariel

Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо буду разбиратся

Отправлено: 17:08, 06-11-2006 | #3


Пользователь


Сообщения: 133
Благодарности: 0

Профиль | Отправить PM | Цитировать


помогите написать скрипт который бы логинился на ftp и копировал от туда папку с текущей датой (например pub/ftpshare/DB/11_17) и отправлял содержимое этой папки по электронной почте

-------
отравленный Windows


Отправлено: 11:09, 17-11-2006 | #4


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


krestik
Используйте wget для получения файла. Что для отправки - не знаю, не занимался подобным.

Отправлено: 11:25, 17-11-2006 | #5


Пользователь


Сообщения: 133
Благодарности: 0

Профиль | Отправить PM | Цитировать


понял. уже капаю в этом направлении.Но как подставить текущую дату???

-------
отравленный Windows


Отправлено: 11:36, 17-11-2006 | #6


Пользователь


Сообщения: 133
Благодарности: 0

Профиль | Отправить PM | Цитировать


командой "date +%m_%d" я могу получить текущую дату. Как эту дату присвоить переменной в скрипте? И соответственно синтаксис написания пути cp pub/ftpshare/DB/"эта переменная"???

-------
отравленный Windows


Отправлено: 13:02, 17-11-2006 | #7


Аватара для BuGfiX

Слакофил


Сообщения: 590
Благодарности: 130

Профиль | Сайт | Отправить PM | Цитировать


Цитата:
Как эту дату присвоить переменной в скрипте?
Код: Выделить весь код
DATE=`/bin/date "+%m_%d"`
Цитата:
синтаксис написания пути
Код: Выделить весь код
cp pub/ftpshare/DB/$DATE
А еще по поводу решения задач такого типа можете посмотреть в сторону expect (autoexpect).

-------
If you don`t know what to use this for, you don`t need it.

http://sergey.sereda.googlepages.com...e1_userbar.gif

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:38, 17-11-2006 | #8



Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » Помогите написать скрипт копирования

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] помогите написать батничек для копирования файлов anatoly_neo Скриптовые языки администрирования Windows 9 20-09-2010 15:11
FreeBSD - Помогите написать скрипт Stirs Общий по FreeBSD 2 25-06-2008 02:29
FreeBSD - Помогите написать скрипт для резервного копирования на основе команды CP NickNick Общий по FreeBSD 3 02-06-2008 13:30
Помогите написать небольшой скрипт rusGT Программирование в *nix 3 04-05-2008 22:40
Помогите написать скрипт!!! Sergei Antoshkin Вебмастеру 1 13-03-2003 18:22




 
Переход