Как изменить имена файлов в каталоге на новые имена, содержащиеся в файле?

Как изменить имена файлов в каталоге на новые имена, содержащиеся в файле?

У меня есть каталог, полный имен файлов, которые нужно изменить. Мне не нужно просто переименовать суффикс или префикс, а нужно полностью переименовать файлы.

У меня есть новые имена файлов, содержащиеся в файле new_names.

Какую команду можно использовать для чтения имен, содержащихся в new_names, и переименования файлов в каталоге?

решение1

Вы можете использовать это для создания списка mvкоманд:

paste /path/to/new_names <(ls /path/to/files | grep -v new_names) | awk '$2 !~ /^$/ {print "mv " $2,$1}'

Если все выглядит хорошо, то вы можете выполнить это с помощью:

cd /path/to/files
$( paste /path/to/new_names <(ls /path/to/files | grep -v new_names) | awk '$2 !~ /^$/ {print "mv " $2,$1}' )

Связанный контент