LINUX.ORG.RU

История изменений

Исправление x3al, (текущая версия) :

А почему две звёздочки (**/*)? Опечатка или такой синтаксис?

Потому, что рекурсивный глоббинг.

ну, если ещё будет сортировка по суффиксам (расширениям), то вообще было бы шикарно!

zsh:

for i in **/*; do basename=`basename $i`; cp "$i" ${${basename##*.}:u}S/; done
Это пройдётся по всем файлам и рассортирует по суффиксам. Структура директорий не сохраняется, всё кидается в корень, при дублирующемся имени все файлы кроме первого игнорируются.

UPD: чёрт, давно же не писал на zsh. нафиг не нужно basename, можно builtins.

for i in **/*; do basename=${i:t}; cp "$i" ${${basename##*.}:u}S/; done

Исправление x3al, :

А почему две звёздочки (**/*)? Опечатка или такой синтаксис?

Потому, что рекурсивный глоббинг.

ну, если ещё будет сортировка по суффиксам (расширениям), то вообще было бы шикарно!

zsh:

for i in **/*; do basename=`basename $i`; cp $i ${${basename##*.}:u}S/; done
Это пройдётся по всем файлам и рассортирует по суффиксам. Структура директорий не сохраняется, всё кидается в корень, при дублирующемся имени все файлы кроме первого игнорируются.

UPD: чёрт, давно же не писал на zsh. нафиг не нужно basename, можно builtins.

for i in **/*; do basename=${i:t}; cp $i ${${basename##*.}:u}S/; done

Исправление x3al, :

А почему две звёздочки (**/*)? Опечатка или такой синтаксис?

Потому, что рекурсивный глоббинг.

ну, если ещё будет сортировка по суффиксам (расширениям), то вообще было бы шикарно!

zsh:

for i in **/*; do basename=`basename $i`; cp $i ${${basename##*.}:u}S; done
Это пройдётся по всем файлам и рассортирует по суффиксам. Структура директорий не сохраняется, всё кидается в корень, при дублирующемся имени все файлы кроме первого игнорируются.

UPD: чёрт, давно же не писал на zsh. нафиг не нужно basename, можно builtins.

for i in **/*; do basename=${i:t}; cp $i ${${basename##*.}:u}S; done

Исправление x3al, :

А почему две звёздочки (**/*)? Опечатка или такой синтаксис?

Потому, что рекурсивный глоббинг.

ну, если ещё будет сортировка по суффиксам (расширениям), то вообще было бы шикарно!

zsh:

for i in **/*; do basename=`basename $i`; cp $i ${${basename##*.}:u}S; done
Это пройдётся по всем файлам и рассортирует по суффиксам. Структура директорий не сохраняется, всё кидается в корень, при дублирующемся имени все файлы кроме первого игнорируются.

Исходная версия x3al, :

А почему две звёздочки (**/*)? Опечатка или такой синтаксис?

Потому, что рекурсивный глоббинг.

ну, если ещё будет сортировка по суффиксам (расширениям), то вообще было бы шикарно!

zsh:

for i in **/*; do basename=`basename $i`; cp $i ${${basename##*.}:u}S; done
Это пройдётся по всем файлам и рассортирует по суффиксам. Структура директорий не сохраняется, всё кидается в корень, все файлы кроме первого игнорируются.