Заменить часть имени файла на строку в подкаталогах и в текущем каталоге

Запустите эти команды для установки Virtualbox 5.0.

sudo apt-add-repository "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib"
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install virtualbox-5.0 dkms 
dkms (необязательно): «Пользователи Ubuntu / Debian могут захотеть установить пакет dkms, чтобы убедиться, что модули ядра хоста VirtualBox (vboxdrv, vboxnetflt и vboxnetadp) должным образом обновляются, если версия ядра Linux изменяется во время следующего обновления apt-get. "
1
задан 25 November 2015 в 13:03

1 ответ

Я бы использовал rename с простым */* совпадением, а не с шаблоном globstar ..

rename 's|([^/]+)/(.+)|$1/$1_$2|' */* -vn

Мы сопоставляем каталог, а затем что-то, что оно содержит. Это несколько более безопасно, чем globstar, потому что мы не хотим слишком зацикливаться.

-n на конце останавливает его на самом деле. Он просто покажет вам. Удалите это, когда вы уверены, что это правильно. Вот небольшой тестовый жгут:

$ mkdir -p test/test{1..3} && touch test/test{1..3}/file{1..3}
$ cd test
$ rename 's|([^/]+)/(.+)|$1/$1_$2|' */* -vn
test1/file1 renamed as test1/test1_file1
test1/file2 renamed as test1/test1_file2
test1/file3 renamed as test1/test1_file3
test2/file1 renamed as test2/test2_file1
test2/file2 renamed as test2/test2_file2
test2/file3 renamed as test2/test2_file3
test3/file1 renamed as test3/test3_file1
test3/file2 renamed as test3/test3_file2
test3/file3 renamed as test3/test3_file3
1
ответ дан 23 May 2018 в 15:30

Другие вопросы по тегам:

Похожие вопросы: