2017-01-26 6 views
0

Я новичок как в Linux, так и в командной строке. Я пытаюсь переименовать все файлы в каталоге (anotherExampleDOM), так что они просто добавляются с помощью «_2».Изменить все имена файлов в каталоге через CLI - Ubuntu

E.g. 'myFile.txt' станет «myFile_2.txt»

Файлы не все имеют одинаковое расширение. Я исследовал команду «rename» в сочетании с регулярными выражениями Perl, но не могу найти примеров того, что я пытаюсь добиться. Я также попытался использовать цикл for как показано ниже, но получил синтаксическую ошибку bash около неожиданного токена «do».

$ for FILENAME in /home/tnargi/Documents/anotherExampleDOM/*; do mv $FILENAME $FILENAME_2; done 

Я уверен, что это не может быть трудным делом, но я никуда не денусь. Любая помощь будет оценена по достоинству. Позвольте мне знать, нужна ли дополнительная информация. Благодарю.

ответ

0

Попробуйте это:

for FILENAME in /home/tnargi/Documents/anotherExampleDOM/*; do mv $FILENAME `basename $FILENAME .txt`_2.txt; done 
+0

Можете ли вы объяснить, как это отвечает на вопрос? – soundslikeodd

+0

К сожалению, это работает только для файлов, у которых уже есть расширение «.txt», для других файлов он добавляет «_2.txt» к имени файла в дополнение к его предыдущему расширению. i.e. exampleFile.xml становится exampleFile.xml_2.txt (вместо exampleFile_2.xml) – TNARGI

+0

Это потому, что вы не помещаете * .txt в команду find – Molinero