Re: Как можно собрать файлы из множества директорий в одну ?
On 2010.02.03 17:58, Alexander GQ Gerasiov wrote:
> Wed, 13 Jan 2010 11:53:31 +0200
> Oleksandr Gavenko<gavenko@bifit.com.ua> wrote:
>
>> On 2010.01.12 16:23, Nicholas wrote:
>> > Oleksandr Gavenko wrote:
>> >> find $dir -type f -name "*.[ch]" | while read file; do \
>> >> fname=`basename $file` или fname=${file##*/}; \
>> >> dname=${file%/*}; \ - удаляем имя
>> >> dname=${dname##*/}; \ - получаем последний каталог
>> >> mv $file куда-вам-угодно/$dname_$fname; \
>> >> done
>> >
>> > Спасибо, буду эксперементировать.
>> >
>>
>> Приятность конструкции
>>
>> find . -type f .... | while read; do ...; done
>>
>> в возможности обрабатывать только часть файлов,
>> удовлетворяющих сложному условию:
>>
>> find . -type f .... | while read; do \
>> if test/grep/[ $var = bad ]/bla-bla-bla; then \
>> continue; \
>> fi; \
>> полезная-работа; \
>> done
>>
>> и полное соответствие POSIX (без лишних зависимостей).
> И радостное бл******** на перво же файле с \n в имени.
>
Есть такое. Ранний UNIX это set of text oriented utils.
Строка - единица в обработке информации.
К именам файлов наверно нужно подходить как к
индексам БД - нужны лишь для различия одного от другого.
Когда появился код для обработки wildcard - стало возможным
пихать теги имена в файлов (*.c, *.txt, *.tex). Эта концепция
хорошо ложится в придуманую модель именования файлов.
Но вот когда пользователям дали возможность ставить пробелы,
национальные символы, управляющие символы - никто не
заботился о совместимости со старым кодом и стандартами ((
Эти "тупые" пользователи ничего не знают о кодировках,
переносимости, спецсимволах. Не читали "limits.h",
где написан MAX_PATH. И вообще
http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap03.html#tag_03_230
In the shell command language,
a word consisting solely of underscores, digits,
and alphabetics from the portable character set.
The first character of a name is not a digit.
PS. Обожаю пробелы, ведь благодаря им можно узнать столько
нового о shell и IFS.
--
С уважением, Александр Гавенко.
Reply to: