LINUX.ORG.RU

Re: Заменить символы «>», «<», «|», «?», «*», «/», «\», «:», «"» на «_» в названиях файлов и директорий.

Обход дерева слева на право, сначала посещаем листья потом узлы. Стандартный алгоритм.

wfrr ★★☆ ()

Re: Заменить символы «>», «<», «|», «?», «*», «/», «\», «:», «"» на «_» в названиях файлов и директорий.

я использую krename

sin_a ★★★★★ ()

Re: Заменить символы «>», «<», «|», «?», «*», «/», «\», «:», «"» на «_» в названиях файлов и директорий.

А у тебя в названиях файлов есть недопустимые символы?

anonymous ()

Re: Заменить символы «>», «<», «|», «?», «*», «/», «\», «:», «"» на «_» в названиях файлов и директорий.

man find
/-depth

man rename
or
man sed

sdio ★★★★★ ()

Re: Заменить символы «>», «<», «|», «?», «*», «/», «\», «:», «"» на «_» в названиях файлов и директорий.

#!/usr/bin/perl -w
f("/home/user/test");

sub f {
my $d=shift;
opendir(D, $d);
foreach my $f (readdir(D)){
next if($f=~/^[.]{1,2}$/);
my $fullname=$d."/$f";

if (-d $fullname){
$f=~tr/\>\<\|\?\*\/\\\:"/_/;
f($fullname);
}else{
$f=~tr/\>\<\|\?\*\/\\\:"/_/;
}

my $newname=$d."/$f";
print "$newname\n";
rename $fullname, $newname;
}
}


/home/user/test - пусть к начальной папке

ed__ed ()

Re: Заменить символы «>», «<», «|», «?», «*», «/», «\», «:», «"» на «_» в названиях файлов и директорий.

А названии файла может быть «/»?

mky ★★★★★ ()

Re: Заменить символы «>», «<», «|», «?», «*», «/», «\», «:», «"» на «_» в названиях файлов и директорий.

теоретически - да. Практически - это используется как разделитель.

alex_custov ★★★★★ ()

Re: Заменить символы «>», «<», «|», «?», «*», «/», «\», «:», «"» на «_» в названиях файлов и директорий.

Как это "теоретически - да"?
/ нельзя использовать и все.
Попробуй создать без прямого редактирования ФС имя со слешем.

sdio ★★★★★ ()

Re: Заменить символы «>», «<», «|», «?», «*», «/», «\», «:», «"» на «_» в названиях файлов и директорий.

man rename.ul

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