На этот вопрос уже есть ответ здесь :
Допустим, у меня в папке есть эти файлы:
cat.txt
dog.txt
house.txt
tree.txt
Я хочу переименовать их все примерно так:
file1.txt
file2.txt
file3.txt
file4.txt
Is что можно сделать через командную строку?
Я видел только вопросы о переименовании файлов, имеющих какой-то шаблон, например rename dog1.txt
, dog2.txt
- > cat1.txt
, cat2.txt
.
Использовать rename
утилита, чтобы сделать это:
rename -n '$_ = sprintf "file%d.txt", ++$::count' *
-n
заставляет команду показать Вам, что произойдет, если Вы выполните ее. Если вывод был тем, без чего Вы хотите, выполняете его -n
на самом деле переименовать файлы.*
с тем, что Вы хотите переименовать, например: dog*.txt
только переименовать dog1.txt
, dog2.txt
...кому: file1.txt
, file2.txt
, и т.д.$_
вход по умолчанию (имена файлов), которые мы должны изменить.=
мы изменяем егоsprintf
мы определяем схему, запущенную file
сопровождаемый %d
означает число и законченный к .txt
.++$::count
, который является простым счетчиком, выполненным с помощью итераций после того, как каждый переименует. Идея прибывает отсюда.
Это может быть сделано, но с некоторыми протестами. Вы заявили, что "... эти файлы [находятся] в моей папке", которая была бы одним из таких протестов. Мы могли использовать globstar
и выполните итерации по расширенным именам файлов:
$ c=0;for f in *; do ((c++)); echo "$f" "--->" file"$c".txt ; done
cat.txt ---> file1.txt
dog.txt ---> file2.txt
house.txt ---> file3.txt
tree.txt ---> file4.txt
Конечно, Вы могли всегда идти "ручным" путем через a list.txt
, где можно сохранить список имен файлов и считать тот файл через while IFS= read -r ; do ... done < list.txt
$ c=0; while IFS= read -r f; do ((c++)); echo "$f" file"$c" ; done < input.txt
cat.txt file1
dog.txt file2
tree.txt file3
Конечно, эта тема списка может быть расширена во многих отношениях - csv списки, json файлы, списки значения ключа - Вы называете ее. Существует много вопросов о них онлайн. Существует, конечно, другой выбор, который необходимо сделать, как дают полный путь файлам или выполняют все в том же каталоге как список.
Наконец, я уже намекнул на списки значения ключа. С bash
и другие более современные языки сценариев как Python или Perl, у Вас мог быть хеш (или словарь) со списком файлов и соответствующего нового имени, которое Вы хотите, чтобы файл имел.