Скажем, я хочу, чтобы скопировать все файлы в dir
для dest
:Как скопировать все файлы в каталог с помощью globstar?
$ tree .
.
├── dest
└── dir
├── dir
│ ├── file1
│ └── file2
└── file3
Это легко, если я знаю, что имена файлов и глубины каталогов:
$ echo dir/f* dir/*/*
dir/file3 dir/dir/file1 dir/dir/file2
$ cp dir/f* dir/*/* dest/
$ tree dest/
dest/
├── file1
├── file2
└── file3
Это также легко (с globstar), чтобы получить только каталоги:
$ echo dir/**/*/
dir/dir/
Но я не знаю, как Глоб только файлы, например. следующее не работает:
$ echo dir/**/*!(/)
dir/**/*!(/)
Что вы имеете в виду «только файлы»? Вы хотите исключить пустые каталоги? –
(AFAIK) вы не можете исключить все каталоги с расширенными шарами. Шаблон типа '*! (/)' Не работает и '! (* /)' Висит оболочка. –
@CommuSoft: Я хочу * исключить * все каталоги, например 'dir/f * dir/*/*'. – schnittstabil