bash-скриптинг, Hogward, 30-Сен-16, 14:23 [смотреть все]Входная информация: Есть каталог (пример) /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-ом, но не хватает скила правильно это сделать.
|
- bash-скриптинг, Виктор, 23:27 , 30-Сен-16 (1) +1
>[оверквотинг удален] > осуществляется именно через текстовый документ, т.к. он формируется на удаленном сервере, > после чего доставляется на необходимый. > 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
- bash-скриптинг, Hogward, 11:35 , 03-Окт-16 (3)
>[оверквотинг удален] >> Без пробелов, спецсимволов и расширений. >> Копирование файлов планирую осуществлять вот таким образом: >> 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 Спасибо, разобрался с циклом и все заработало.
- bash-скриптинг, Pahanivo, 11:03 , 03-Окт-16 (2)
причем тут find, когда, как ты сам пишешь, тебе известны их имена и пути ... остается только проверить их существование ... попытайся сформулировать задачу хотя бы для себя - глядишь и сам разберешься.
- bash-скриптинг, Hogward, 11:39 , 03-Окт-16 (4)
> причем тут find, когда, как ты сам пишешь, тебе известны их имена > и пути ... остается только проверить их существование ... > попытайся сформулировать задачу хотя бы для себя - глядишь и сам разберешься. Это часть более сложного сценария. Путь динамически меняется от сервера к серверу. Предложенный выше вариант позволил решить задачу, отказавшись от создания еще одного текстового файла.
|