В моих каталогах у меня есть несколько файлов с именем content. Мне нужно переименовать их с использованием точного имени родительского каталога, переместить его за пределы и удалить родительский каталог.Переименование файлов в нескольких каталогах на имя родительского каталога
Сложная часть - это форматы имен родительских каталогов: a.txt, b.pdf, c.mp3, поэтому содержимое файла необходимо переименовать в content.txt, content.pdf, content.mp3 впоследствии перемещено на улицу, а каталог следует удалить.
ex;
INPUT
a.txt/content
b.pdf/content
c.mp3/content
OUTPUT
a.txt
b.pdf
c.mp3
Я использовал эту команду find и выдает желаемый выход эха. Я не уверен, куда идти оттуда.
find . -type d -not -empty -exec echo mv \{\}/content \{\} \;
код создавал файлы a.txt.bak, b.pdf.bak и c.mp3.bak, но не переименовывал файлы в исходные расширения – Learner
@Learner. Переименование в конце делает окончательное переименование, например. 'a.txt.bak' в' a.txt' .... проверьте, есть ли команда 'rename'. – heemayl
У меня есть команда rename. Он дает ошибку Невозможно переименовать * .bak *: Нет такого файла или каталога. Я думаю, что он ищет расширение .bak в том месте, которого он не существует. – Learner