The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"cp не копирует скрытые файлы "
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Разное / Linux)
Изначальное сообщение [ Отслеживать ]

"cp не копирует скрытые файлы "  +/
Сообщение от garmahis (ok), 26-Июл-07, 21:45 
Помогите пожалуйста.

Как (какой командой) скопировать всё содержимое каталога, в котором, помимо всего прочего, содержаться скрытые файлы ?

cp -r dir1/* dir2/  - копирует всё, кроме скрытых файлов :(

Спасибо за помощь.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "cp не копирует скрытые файлы "  +/
Сообщение от perece (?), 26-Июл-07, 21:57 
>Как (какой командой) скопировать всё содержимое каталога, в котором, помимо всего прочего,
>содержаться скрытые файлы ?
>
>cp -r dir1/* dir2/  - копирует всё, кроме скрытых файлов :(
>

скрытые это те, что с точкой? я такое понятие как "скрытый файл" только у M$ знаю..
если речь о точке, то
cp -r dir1/* dir1/.[a-zA-Z0-9]* dir2

кстати, а чем не устроило просто
cp -r dir1 dir2
(dir2 в этом случае должна отсутствовать)?

\^P^/

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "cp не копирует скрытые файлы "  +/
Сообщение от garmahis (ok), 26-Июл-07, 22:06 
>если речь о точке, то
>cp -r dir1/* dir1/.[a-zA-Z0-9]* dir2
>
>кстати, а чем не устроило просто
>cp -r dir1 dir2
>(dir2 в этом случае должна отсутствовать)?
>
>\^P^/

Спасибо за ответ, но необходимо именно содержимое dir1 а не dir1.
А как быть если в dir1 находятся папки начинающиеся на точку, которые в свою очередь тоже содержат файлы и папки начинающиеся на точку и т.д.....?????
Спасибо.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "cp не копирует скрытые файлы "  +/
Сообщение от perece (?), 31-Июл-07, 18:57 
>[оверквотинг удален]
>>cp -r dir1/* dir1/.[a-zA-Z0-9]* dir2
>>
>>кстати, а чем не устроило просто
>>cp -r dir1 dir2
>>(dir2 в этом случае должна отсутствовать)?
>
>Спасибо за ответ, но необходимо именно содержимое dir1 а не dir1.
>А как быть если в dir1 находятся папки начинающиеся на точку, которые
>в свою очередь тоже содержат файлы и папки начинающиеся на точку
>и т.д.....?????

никаких проблем. cp -r dir1 dir2 копирует _все_ содержимое папки, с точкой иль без, вместе с ней самой. то же касается и cp -r dir1/subdir1 dir2, и всех прочих уровней вложенности.
проблема у вас в том, что _шел_ неправильно (с т.зрения задачи) раскрывает звездочку в dir1/*. реально выполняемая команда - cp -r dir1/sub1 dir1/sub3 dir1/sub4 dir2
(но не dir1/.sub2, которая там тоже есть)
это решается имеено так, как я написал в самом начале.

\^P^/

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "cp не копирует скрытые файлы "  +/
Сообщение от Аноним (4), 07-Ноя-18, 11:06 
>[оверквотинг удален]
> никаких проблем. cp -r dir1 dir2 копирует _все_ содержимое папки, с точкой
> иль без, вместе с ней самой. то же касается и cp
> -r dir1/subdir1 dir2, и всех прочих уровней вложенности.
> проблема у вас в том, что _шел_ неправильно (с т.зрения задачи) раскрывает
> звездочку в dir1/*. реально выполняемая команда - cp -r dir1/sub1 dir1/sub3
> dir1/sub4 dir2
> (но не dir1/.sub2, которая там тоже есть)
> это решается имеено так, как я написал в самом начале.
> \^P^/
>cp -r dir1/* dir1/.[a-zA-Z0-9]* dir2

cp -r dir1/* dir1/.[^.]* dir1/..[^$]* dir2
Поправил.
dir1/* - все файлы не начинающиеся с точки
dir1/.[^.]* - все файлы начинающиеся с точки, но второй символ не точка (для исключения родительской ".." директории)
dir1/..[^$]* - все файлы начинающиеся с точки, и второй символ тоже точка, но он не последний (для включения всех файлов начинающихся с "..", и исключенных предыдущим regexp)

И да, бывают ведь еще и символы национальных алфавитов, а не только английский (ascii) [a-zA-Z0-9]*

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "cp не копирует скрытые файлы "  +/
Сообщение от Аноним (4), 07-Ноя-18, 18:52 
>[оверквотинг удален]
>> dir1/sub4 dir2
>> (но не dir1/.sub2, которая там тоже есть)
>> это решается имеено так, как я написал в самом начале.
>> \^P^/
>>cp -r dir1/* dir1/.[a-zA-Z0-9]* dir2
> cp -r dir1/* dir1/.[^.]* dir1/..[^$]* dir2
> Поправил.
> dir1/* - все файлы не начинающиеся с точки
> dir1/.[^.]* - все файлы начинающиеся с точки, но второй символ не точка
> (для исключения родительской ".." директории)

Ошибочка вышла :(
cp -r dir1/* dir1/.[^.]* dir1/..[[:alnum:][:alpha:][:ascii:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:word:][:xdigit:]]* dir2

dir1/..[[:alnum:][:alpha:][:ascii:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:word:][:xdigit:]]* - все файлы начинающиеся с двух точек и далее имеются какие либо символы

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру