Входная информация:
Есть каталог (пример) /home/usr/var/ в котором лежит 300 файлов. Периодически возникает необходимость обновлять эти файлы, создав бэкапы старых. Хочу автоматизировать сей нудный процесс до нажатия одной кнопки. Таким образом у меня есть список файлов list.txt в котором указаны интересующие меня файлы (количество любое, файл заполняется через ls). На основании этого файла хочу выбрать существующие файлы из /home/usr/var/, скопировать их в /home/usr/var_old/, после чего подменить на новые. Перерыл кучу информации, нашел несколько работающих вариантов в случаях, когда есть полный путь до файлов, но так и не понял, как написать запрос поиска файлов на основании их имен в текстовом документе. Поиск осуществляется именно через текстовый документ, т.к. он формируется на удаленном сервере, после чего доставляется на необходимый.
PS из плюсов - все файлы имеют вид "document"; "item" и пр. Без пробелов, спецсимволов и расширений.Копирование файлов планирую осуществлять вот таким образом:
cat /home/usr/var/to_backup.txt | xargs -IFILE cp FILE /home/usr/var_old/
где to_backup.txt - файл, созданный на основе list.txt, но с полными путями до файлов.Почти уверен, что проблему можно решить обычным find-ом, но не хватает скила правильно это сделать.
>[оверквотинг удален]
> осуществляется именно через текстовый документ, т.к. он формируется на удаленном сервере,
> после чего доставляется на необходимый.
> PS из плюсов - все файлы имеют вид "document"; "item" и пр.
> Без пробелов, спецсимволов и расширений.
> Копирование файлов планирую осуществлять вот таким образом:
> cat /home/usr/var/to_backup.txt | xargs -IFILE cp FILE /home/usr/var_old/
> где to_backup.txt - файл, созданный на основе list.txt, но с полными путями
> до файлов.
> Почти уверен, что проблему можно решить обычным find-ом, но не хватает скила
> правильно это сделать.while read f; do
echo $f
done <list.txt
>[оверквотинг удален]
>> Без пробелов, спецсимволов и расширений.
>> Копирование файлов планирую осуществлять вот таким образом:
>> cat /home/usr/var/to_backup.txt | xargs -IFILE cp FILE /home/usr/var_old/
>> где to_backup.txt - файл, созданный на основе list.txt, но с полными путями
>> до файлов.
>> Почти уверен, что проблему можно решить обычным find-ом, но не хватает скила
>> правильно это сделать.
> while read f; do
> echo $f
> done <list.txtСпасибо, разобрался с циклом и все заработало.
причем тут find, когда, как ты сам пишешь, тебе известны их имена и пути ... остается только проверить их существование ...
попытайся сформулировать задачу хотя бы для себя - глядишь и сам разберешься.
> причем тут find, когда, как ты сам пишешь, тебе известны их имена
> и пути ... остается только проверить их существование ...
> попытайся сформулировать задачу хотя бы для себя - глядишь и сам разберешься.Это часть более сложного сценария. Путь динамически меняется от сервера к серверу. Предложенный выше вариант позволил решить задачу, отказавшись от создания еще одного текстового файла.