|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Vladimir Bormotov 2:5020/400 19 Jul 2003 01:39:05 To : Dmitry Nedbaylo Subject : Re: Рекурсия --------------------------------------------------------------------------------
Hi, Dmitry!
>>>>> "DN" == Dmitry Nedbaylo <Dmitry.Nedbaylo@p104.f7.n466.z2.fidonet.org>
>>>>> writes:
SA>> Для рекурсии необходимо конечное условие и стек параметров. Вы об этом
SA>> позаботились? И не пробовали ли вы решить свою задачу при помощи
SA>> find?
DN> А задача например такая : Есть каталог /Music с еще субдиректориями с
DN> файлами mp3. Hадо создать симв. ссылку на каждый файл mp3 в каталоге
DN> /music. С find я не мог получить basename файла. Что то вот такое :
DN> find /Music -name "*mp3" -exec ln -s {} /music/"$(basename {})" \; не
DN> катит. Создаю скрипт (кстати c return'ом я погарячился, здесь он и не
DN> надо):
DN> ======script begin====================
DN> #!/bin/bash -x
DN> function LinkMP3 {
DN> _PWD=$1 for i in "$_PWD"/*; do
DN> if [ -f "$i" ]; then
DN> ln -s "$i" "/music/$(basename "$i")"
DN> elif [ -d "$i" ]; then
DN> LinkMP3 "$i"
DN> fi
DN> done
DN> }
DN> LinkMP3 /Music
DN> =======script end===========
DN> Вот и все. Задача решена.
отлично.
DN> Только вопросик: как это можно сделать с find?
find - это способ развернуть рекурсию в цикл.
например find может найти все файлы, во всех каталогах и выдать список,
котоырй потом скармливается ln'у.
--
Bor.
--- ifmail v.2.15dev5
* Origin: BorHomeLand (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/2541b4dc03bc.html, оценка из 5, голосов 10
|