LINUX.ORG.RU
решено ФорумAdmin

Директории с пробелами.

 


0

1

Добрый день. Может кто объяснить, нужно найти директории.. выполнить с названием директории определенные действия.. после чего сделать mv.

Сейчас строчка этого find'a выглядит так:

find ./ -type d -prune -links 2 -exec bash -c 'FILE="{}"; echo mv "$FILE" $(utf7 "{}")' \;

К сожалению, папки с пробелами в данном случае пропускаются.

Может кто подсказать, как это решить?

Заэкранируй ".

anonymous ()

Эмм... Установить IFS в что-нибудь вменяемое? Или юзать старый добрый print0?

x3al ★★★★★ ()

find -print0|xargs -0, например

leave ★★★★★ ()
find . -type d -prune -links 2 -print0 | xargs -0 -n 100 perl -e 'use Encode; map { ($p, $n) = (m!(.+)/(.+)!); Encode::from_to($n2 = $n, "utf-8", "utf-7"); Encode::from_to($f = $_, "utf-8", "utf-7"); rename($_, $f) if $n2 ne $n; } @ARGV;'

Вроде так. Но здесь с перестраховкой - переименовывает и в подкаталогах, если надо. «utf-8» заменить на рабочую кодировку, если не она.

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