LINUX.ORG.RU

Перемещение определенных файлов в каталог выше через find?


0

0

Пример:

/tmp/music/Black Sabbath/Master Of Reality/Lossless/07 Solitude.flac
В директориях есть файлы '*.flac', их нужно переместить в каталог выше и удалить изначальную директорию. Короче, чтобы стало так:
/tmp/music/Black Sabbath/Master Of Reality/07 Solitude.flac
Не могу решить данную задачу, подскажите, где ошибка?
find . -type f -iname "*.flac" -exec mv {} ../`pwd` \;

Спасибо!


Во-первых, pwd возвращает _полный_ путь, во-вторых, нафига оно там вообще нужно?

gotf
()
Ответ на: комментарий от gotf

Хм, тут одним find, похоже, не обойдешься, т.к. он не совершает переход в каталоги. Проще написать небольшой sh-скрипт, даже без find легко обойдется.

gotf
()

find "$PWD" -type f -name *.flac | while read FILE; do echo "mv $FILE $(dirname "$(dirname "$FILE")")/$(basename "$FILE")"; done

name_no ★★
()
Ответ на: комментарий от gotf

С -execdir и -okdir совершает. man find -- очень мощная утилита

Xenius ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.