Используйте find
с командами xargs
:
find -maxdepth 1 -type d -name '*-v4' -print0 | \
xargs -0 -I % bash -c 'mv -v "%" "$(echo % | sed "s/-v4$//")"'
find
-поиск файлов в иерархии каталогов
xarg
-выполняет команду(bash
здесь )с аргументом изfind
echo % | sed "s/-v4//"
-удаляет -v4
из имени файла
Вы не можете заставить его работать, потому что echo
не знает, как читать поток данных из stdin
. Он может отображать только аргументы, которые вы ему даете, поэтому вам нужно передать данные в виде аргумента. Например, вот так:
echo $(echo hello)