@Dert1x

Bash скрипт работа с файлами?

У меня есть директория для обработки например Dir/ (Documents/Dir)
В ней есть некоторое кол-во файлов к примеру file.txt readme.txt text.txt (Dir/file.txt ; Dir/readme.txt ; Dir/text.txt)
Так в этой директории есть несколько вложенных директорий, в которых есть тоже файл и один из этих файлов называется так же как file.txt, но содержат разную информацию (Dir/Dir1/file.txt ; Dir/Dir2/copybook.txt)
У меня есть директория для результатов Results (Documents/Results)

Мне нужно скопировать все файлы из Dir в Results без повторения иерархии вложенных папок в Dir с учетом файлов с одноименным названием и без потери информации. В итоге в директории Results должно получиться 5 файлов (Results/file.txt ; Results/readme.txt ; Results/text.txt ; Results/copybook.txt ; Results/file.txt ) , но так как файлов с одинаковым именем в директории не может быть, нужно переименовать один из файлов, без потери информации внутри файла.

Скрипт заведомо не знает, сколько содержится файлов и директорий в Dir
  • Вопрос задан
  • 265 просмотров
Решения вопроса 2
Как-то так
find /Documents/Dir -type f -exec cp --backup=numbered {} /Documents/Results/ \;
rename 's/^\.//' /Documents/Results/*
Ответ написан
alekciy
@alekciy
Вёбных дел мастер
for file in `find Dir -name "*.txt" 2>/dev/null`; do echo $file ; cp --backup=t $file Results ; done
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы