Нужен cp -альтернативный топор для Solaris

find /etc -maxdepth 1 -regextype egrep  -regex '.*/.{3}$'

Это позволит найти в /etc/имена файлов или каталогов длиной ровно 3 символа.

find /etc -maxdepth 1 -regextype egrep  -regex '.*/.{3,}$'

И это найдет файлы или каталоги в /etc/, которые имеют минимальную длину 3 символа.

find /etc -maxdepth 1 -regextype egrep  -regex '.*/.{3,7}$'

И это найдет файлы или каталоги в /etc, которые имеют длину от 3 до 7 символов.

Параметр -maxdepth 1предотвращает поиск подкаталогов -каталога /etc.

Если вы хотите ограничить поиск только каталогами, добавьте -type dпосле -maxdepth 1. Для обычных файлов используйте -type f.

Если вы собираетесь что-то делать с найденными файлами/каталогами, вы можете использовать опцию find -exec. например.

find /etc -maxdepth 1 -regextype egrep  -regex '.*/.{3,7}$' -exec du -sch {} +

или xargs(, но используйте разделители NUL, чтобы избежать проблем с пробелами, новыми строками и т. д. в именах файлов ). Это позволяет вам использовать любой инструмент, который может обрабатывать ввод, разделенный NUL -, в конвейере до xargs. например.:

find /etc -maxdepth 1 -regextype egrep  -regex '.*/.{3,7}$' -print0 | 
  head -z -n 10 |
  xargs -0r ls -ld
0
20.01.2021, 17:18
1 ответ

Solaris использует для этого опцию cp -p. Как /usr/bin/cp, так и /usr/xpg4/bin/cpимеют эту опцию, согласно справочной странице Oracle в Интернете.

Linux cp -aэквивалентен -dR --preserve=all, поэтому вам может потребоваться найти дополнительные параметры для ссылок и рекурсивных функций.

1
18.03.2021, 22:35

Теги

Похожие вопросы