Filariel
06-11-2006, 15:19
У меня есть одна папка которую я копирую в другу вместе со всем ее содержимым.
И в ней есть ссылка на папку и ее я не хочу копировать так как начинает тянуть всю папку на которую эта ссылка ссылается.
Копирую таким образом cp -ipfdrR /share/test/* /mnt/shara_pcard2/test/
Подскажите как сделать так что бы копировалось все кроме этой ссылки !?
ruslandh
06-11-2006, 16:01
Попробуем разобрать ключики :
cp -ipfdrR
-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
Копирует каталоги рекурсивно, защищая не-каталоги.
Чего не хватает :
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ POSIX 2003
Стандарт POSIX 1003.1-2003 добавляет три опции, которые определяют как
управлять символьными ссылками. Когда выполняется нерекурсивное копирование,
символьные ссылки разименовываются (берутся те объекты на которые они
указывают, вместо самой ссылки -- прим.пер.). Когда выполняется рекурсивное
копирование с использованием опции -r, результаты зависят от реализации. Когда
выполняется рекурсивное копирование с использованием опции -R:
-H Разименовывает символьные ссылки, указанные в списке параметров. Не
разименовывает символьные ссылки, которые встречаются во время
рекурсивного копирования, а просто копирует их.
-L Разименовывает все символьные ссылки, как заданные в списке параметров
так и встретившиеся во время рекурсивного копирования.
-P Не разименовывает никакие символьные ссылки, ни заданные в списке
параметров, ни встретившиеся во время рекурсивного копирования. Просто
копирует их как символьные ссылки.
Нет опции, работающей по умолчанию - необходимо указывать одну из опций для
достижения нужного результата.
помогите написать скрипт который бы логинился на ftp и копировал от туда папку с текущей датой (например pub/ftpshare/DB/11_17) и отправлял содержимое этой папки по электронной почте
hasherfrog
17-11-2006, 11:25
krestik
Используйте wget для получения файла. Что для отправки - не знаю, не занимался подобным.
понял. уже капаю в этом направлении.Но как подставить текущую дату???
командой "date +%m_%d" я могу получить текущую дату. Как эту дату присвоить переменной в скрипте? И соответственно синтаксис написания пути cp pub/ftpshare/DB/"эта переменная"???
Как эту дату присвоить переменной в скрипте?
DATE=`/bin/date "+%m_%d"`
синтаксис написания пути
cp pub/ftpshare/DB/$DATE
А еще по поводу решения задач такого типа можете посмотреть в сторону expect (autoexpect).
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC