Функция переименования Linux не работает должным образом - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь переименовать список файлов, удалив «tmp». строка

, например 1.tmp.tax.html станет 1.tax.html

(base) [david@archlinux ~]$ ls -ltr test/
total 684
-rw------- 1 david users 229779 Nov  7 11:43 1.tmp.tax.html
-rw------- 1 david users 229779 Nov  7 11:43 2.tmp.tax.html
-rw------- 1 david users 229779 Nov  7 11:43 3.tmp.tax.html


rename 's/tax.//' test/*.html

Нет выходных сообщений, ничего не переименовано. Что не так ???

(base) [david@archlinux ~]$ rename --version
rename from util-linux 2.34

(base) [david@archlinux ~]$ uname -a
Linux archlinux 5.3.7-arch1-2-ARCH #1 SMP PREEMPT @1572002934 x86_64 GNU/Linux

1 Ответ

0 голосов
/ 07 ноября 2019

rename из util-linux не использует подстановку с регулярными выражениями.

$ rename -h

Usage:
 rename [options] <expression> <replacement> <file>...

Так, в вашем случае,

rename .tmp. . test/*.html

Кстати, при использовании другого переименованияОбратите внимание, что . является особенным в регулярных выражениях (соответствует любому символу, кроме новой строки). Таким образом, ваша команда также удалит, например, taxi из имен файлов.

...