Форум — General Заменить символы «>», «<», «|», «?», «*», «/», «\», «:», «"» на «_» в названиях файлов и директорий. 0 0 Рекурсивно. Как? Ссылка
Обход дерева слева на право, сначала посещаем листья потом узлы. Стандартный алгоритм. wfrr ★★☆ (10.01.09 20:47:45 MSK) Ссылка
#!/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 (10.01.09 22:19:38 MSK) Ссылка
Ответ на: комментарий от mky 11.01.09 00:36:18 MSK теоретически - да. Практически - это используется как разделитель. alex_custov ★★★★★ (11.01.09 01:44:51 MSK) Показать ответ Ссылка
Ответ на: комментарий от alex_custov 11.01.09 01:44:51 MSK Как это "теоретически - да"? / нельзя использовать и все. Попробуй создать без прямого редактирования ФС имя со слешем. sdio ★★★★★ (11.01.09 11:35:06 MSK) Ссылка