Переименуйте файлы, добавив имя их родительской папки
У меня есть родительский каталог, состоящий из набора подкаталогов. Каждый подкаталог состоит из списка файлов.
Вот сценарий:
v_1:
filenames.txt
v_2:
labels.txt
v_3:
coding.txt
Каков мой ожидаемый результат?
v_1:
v_1_filenames.txt
v_2:
v_2_labels.txt
v_3:
v_3_coding.txt
Что я пытался решить это?
rename -n 's/(.*)\//$1\/$1_/' */*
какие отпечатки
rename(v_1/filenames.txt, v_1/v_1_filenames.txt)
rename(v_2/labels.txt, v_2/v_2_labels.txt)
rename(v_3/coding.txt, v_3/v_3_coding.txt)
Однако это не работает. Чтобы подтвердить, что я сделал:
ls *
и я получаю:
v_1:
filenames.txt
v_2:
labels.txt
v_3:
coding.txt
Любой кий? Спасибо
1 ответ
Решение
Просто удалите опцию -n
, От man prename
*:
-n, --no-act
No Action: show what files would have been renamed.
* Есть несколько команд под названием rename
; Я полагаю, вы используете prename
на Ubuntu 16.04 или более ранней, хотя вариант -n
делает то же самое для большинства других версий. Подробности см. В чем разница между различными командами "переименовать"?