LINUX.ORG.RU

Ответ на: комментарий от record

>find /etc/skel/ -type f -exec cp -v {} $HOME \;

Ты забыл «-name '.*'» и «-maxdepth 1» :)

nnz ★★★★
()
Ответ на: комментарий от TGZ

> cp /etc/skel/\.* ${HOME}

работает, как хотел, копирует файлы, а если -r добавим еще и каталоги, причем пути сохраняются, спасибо;
Не подскажешь, а в man bash про символ «\» прочитать в каком разделе можно, как в команде на вроде, что ты выше привел или можешь пояснить?

NK ★★★★★
() автор топика
Ответ на: комментарий от TGZ

>cp /etc/skel/\.* ${HOME}

У меня на баше «echo /etc/skel/\.*» выводит то же, что и обычный «echo /etc/skel/.*», включая «.» и «..».

nnz ★★★★
()
Ответ на: комментарий от nnz

Ну не знаю, посмотрим... а в обще существенно отличается синтаксис zsh от bash или не в нем дело?

NK ★★★★★
() автор топика
Ответ на: комментарий от nnz

Ааа, да, напутал, не прокатило, с ключом -a уже каталоги из уровня, что выше копируются

NK ★★★★★
() автор топика
Ответ на: комментарий от NK

>Ну не знаю, посмотрим... а в обще существенно отличается синтаксис zsh от bash или не в нем дело?

Дело в том, что в zsh дофига разных плюшек. Меня, например, покорило расшаривание истории между _одновременно_ работающими сеансами.

Из полезных фич применительно к данному случаю можно упомянуть возможность прямо в маске использовать различные проверки, например, (.) означает простой файл, (/) — каталог, (F) — непустой каталог и т.п. Подробнее здесь: http://linux.die.net/man/1/zshexpn

nnz ★★★★
()
Ответ на: комментарий от NK

«\» - просто стандартный экранирующий символ. Точка будет интерпретироваться как точка, а не как служебный символ.

TGZ ★★★★
()
Ответ на: комментарий от TGZ

>«\» - просто стандартный экранирующий символ. Точка будет интерпретироваться как точка, а не как служебный символ.

Ээ... А с чего ей быть служебным символом? Не regexp вроде же.
Там основная проблема в том, что «.» и «..» тоже под этот шаблон подпадают.

nnz ★★★★
()
Ответ на: комментарий от nnz

Ээ... А с чего ей быть служебным символом?


Потому что ".*" это маска, под которую подходят не только файлы начинающиеся с точки.

TGZ ★★★★
()
Ответ на: комментарий от sdio

> cp /etc/skel/.[a-zA-Z]* $HOME

Да, точно оно, спасибо

Напоследок уточню, а если цифры [a-zA-Z0-9] ?

NK ★★★★★
() автор топика
Ответ на: комментарий от GotF

>cp -a /etc/skel/\.+([a-z]) ${HOME}

По-моему, проще и универсальные будет /etc/skel/.[^.]* (точка, затем как минимум один символ не точки, потом произвольная строка). Файлы, начинающиеся с двух точек, оно все же пропустит, но это редкость.

nnz ★★★★
()
Ответ на: комментарий от TGZ

>Потому что ".*" это маска, под которую подходят не только файлы начинающиеся с точки.

Что, правда? А я-то полагал, что каталоги, в том числе «.» и «..», являются частным случаем файла. Как и устройства, сокеты и FIFO.
Ну да ладно.

Все же в упор не понимаю, что дает экранирование этой точки.

nnz ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.