У меня есть два каталога: сегодня и вчера. Внутри каждого каталога находится более 100 файлов с одинаковым именем в формате .cfg. В сценарии bash я могу вызвать определенное имя файла и выполнить сравнение, и моим выводом будет любой текст в файле, отличающийся от другого.
Код: Выделить всё
diff PROD/Today/Core.cfg PROD/Yesterday/Core.cfg > PROD/Changes/delta.txt
Я знаю, что мне нужно создать цикл, чтобы получить каждое отдельное имя файла, а затем сравнить его с файлом с таким же именем в другой папке.
Код: Выделить всё
for i in PROD/Today/*.cfg; do diff PROD/Today/$i PROD/Yesterday/$i > PROD/Changes/delta.txt
Но в результате он ищет *.cfg, а не фактическое имя файла.
И
Код: Выделить всё
find . -maxdepth 1 -type f -name '*.cfg' | while read -r file; do
file=$(basename $file)
diff PROD/Today/$file PROD/Yesterday/$file > PROD/Changes/$file_delta.txt
done
Результат только PROD/Yesterday/.cfg: такого файла или каталога нет, хотя отображается каждое из 100 имен файлов по отдельности.
Подробнее здесь:
https://stackoverflow.com/questions/781 ... irectories