Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.
Модератор: Bizdelnick
-
apvs
- Сообщения: 52
Сообщение
apvs »
Для примера структура файлов такая:
Код: Выделить всё
$ tree
.
├── a
│ └── - a.txt
├── b
│ └── - b.txt
└── c
└── - c.txt
3 directories, 3 files
Мне нужно рекурсивно по директориям пройтись и переименовать все txt. Использую
https://www.archlinux.org/packages/community/any/perl-rename/
Делаю так:
Код: Выделить всё
find . -type f -name '*.txt' -exec perl-rename -v 's/^ - //g' '{}' \;
и не переименовывает, и ошибок никаких не выдаёт.
тоже не работает.
Зато такое нормально работает:
Не пойму, в чём дело, как заставить через find нормально работать?
-
Bizdelnick
- Модератор
- Сообщения: 21457
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Сообщение
Bizdelnick »
man prename
--path, --fullpath
Rename full path: including any directory component. DEFAULT
-d, --filename, --nopath, --nofullpath
Do not rename directory: only rename filename component of path.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще | в течение (часа)
новичок
нюанс
по умолчанию | приемлемо
проблема
пробовать
трафик |
-
apvs
- Сообщения: 52
Сообщение
apvs »
Арчевский perl-rename не распознаёт таких опций и в манe их не видно.
-
Bizdelnick
- Модератор
- Сообщения: 21457
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Сообщение
Bizdelnick »
Тогда усложняйте регулярку, типа s#(^|/) - ([^/]*\.txt)$#$1$2#.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще | в течение (часа)
новичок
нюанс
по умолчанию | приемлемо
проблема
пробовать
трафик |
-
apvs
- Сообщения: 52
Сообщение
apvs »
Во, теперь удалось переименовать.