
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
19.05.2009, 14:31
|
|||
|---|---|---|---|
Копирование файлов. |
|||
|
#18+
Как рекурсивно скопировать каталог без скрытых файлов и каталогов? Команда cp как-то с паттернами совсем не дружит. Хотя может я не разобрался. Попытался сделать при помощи команды find, но не могу написать паттерн, который находит все файлы, кроме скрытых. find -name ".*" вот так все скрытые нахожу find -name "^.*" вот так ничего не находит, хотя должен найти все, кроме скрытых Сделал так - find -path '*/.*' -prune -o -print но хочется все-таки разобраться с паттернами. Или с ними такого не сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.05.2009, 21:13
|
|||
|---|---|---|---|
Копирование файлов. |
|||
|
#18+
wessen... Команда cp как-то с паттернами совсем не дружит. Хотя может я не разобрался. ...Действительно, "не дружит". С ними "дружит" shell и программа cp в качестве аргументов получает уже "раскрытые" шаблоны. Это одна из удачных "фишек" Unix-а - не нужно дублировать работу с шаблонами в прикладных программах или скриптах. wessen Попытался сделать при помощи команды find, но не могу написать паттерн, который находит все файлы, кроме скрытых. find -name ".*" вот так все скрытые нахожуИ это правильноwessen find -name "^.*" вот так ничего не находит, хотя должен найти все, кроме скрытыхА это с чего Вы взяли ?Тогда уж Код: plaintext В общем, man find, man 7 glob и т.д. wessen Сделал так - find -path '*/.*' -prune -o -print но хочется все-таки разобраться с паттернами.Хочется - разбирайтесьwessen Или с ними такого не сделать?А почему Вы считаете, что Ваш последний вариант без шаблонов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.05.2009, 11:26
|
|||
|---|---|---|---|
Копирование файлов. |
|||
|
#18+
avb1003Действительно, "не дружит". С ними "дружит" shell и программа cp в качестве аргументов получает уже "раскрытые" шаблоны. Это одна из удачных "фишек" Unix-а - не нужно дублировать работу с шаблонами в прикладных программах или скриптах. Вот команда rm дружит и еще куча команд дружит, а cp не дружит и для меня это было не так явно. avb1003 А это с чего Вы взяли ?Тогда уж Код: plaintext В общем, man find, man 7 glob и т.д. Так находятся все файлы и скрытые тоже. Пытался так Код: plaintext Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. то есть все пути начинаются с точки и отсекается соответственно все. В общем, если кто-то подскажет, как убрать ведущие символы ./ из вывода команды find, буду очень признателен. avb1003 А почему Вы считаете, что Ваш последний вариант без шаблонов? Он с шаблонами, я имел в виду, что отсечение не нужных файлов производится опцией prune, а не самим шаблоном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.05.2009, 17:19
|
|||
|---|---|---|---|
Копирование файлов. |
|||
|
#18+
wessen... Вот команда rm дружит ... Вы таки проверили это ? Попробуйте Код: plaintext 1. 2. 3. 4. 5. Так находятся все файлы и скрытые тоже. Не знаю. У меня работает(bash-3.2.48+ find-4.4.0 или bash-2.05+find-4.1.7): Код: plaintext 1. 2. 3. 4. 5. 6. 7. Пытался так Код: plaintext Естественно. Шаблон ".*" означает произвольный символ повторенный произвольное число раз. Вот если набрать "\..*", то тогда можно найти все файлы без точки, если искать так: Код: plaintext 1. то есть все пути начинаются с точки и отсекается соответственно все. В общем, если кто-то подскажет, как убрать ведущие символы ./ из вывода команды find, буду очень признателен. ... См. предыдущий мой примерvessel ... Он с шаблонами, я имел в виду, что отсечение не нужных файлов производится опцией prune, а не самим шаблоном. Странно, что Вы не поняли как работает опция -prune. Последний Ваш вариант был хорошим примером ee применения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.05.2009, 11:28
|
|||
|---|---|---|---|
Копирование файлов. |
|||
|
#18+
avb1003 find `pwd` | grep -v "\..*" Я кажется понял, в чем я тупил. Для опции name команды find передается некий shell pattern, а вот для grep передается именно полноценное регулярное выражение. Оно так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.05.2009, 18:39
|
|||
|---|---|---|---|
Копирование файлов. |
|||
|
#18+
wessenavb1003 find `pwd` | grep -v "\..*" Я кажется понял, в чем я тупил. Для опции name команды find передается некий shell pattern, а вот для grep передается именно полноценное регулярное выражение. Оно так?Примерно так. Но точнее: параметры опций типа -name, рассматриваются (программой find) как shell pattern, а шаблон команды gnu grep по умолчанию трактуется/рассматривается(программой grep) как "basic regular expression", а с опцией -E как "extended regular expression". В других UNIХ-ах для "extended regular expression" существует(или существовала) отдельная команда egrep. Была еще fgrep (grep -F). Все это разные диалекты языка регулярных выражений. Свои версии (диалекты) имеют perl, awk, tcl и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=25&mobile=1&tid=1485803]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
178ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 462ms |

| 0 / 0 |
