Я пытаюсь перезаписать файл каждый раз, когда мой компьютер зарегистрирован после того, как перезапуск или выход из системы затем входят в систему.
/user_data/somePrefs.txt
/software_location/somePrefs.txt
Я могу, конечно, попытаться сделать ручной метод вклеивания копии, чтобы перезаписать файл, но это может быть стычка, чтобы сделать так каждый раз, когда мой компьютер перезагружается / выходит из системы.
Существует ли автоматизированный способ сделать так во время запуска?
.sh
(пример: StartupCommands.sh) Тип #!/bin/bash
в первой строке
(хитрый бит) Тип Ваша команда копии в следующей строке. Это должно точно походить на строку ниже. Не забывайте '
, цитаты
cp '/path/to/user_data/somePrefs.txt' '/path/to/software_location/somePrefs.txt'
и путь должны быть "полным путем" (начинающий с корня и полностью вниз в Ваши файлы).
... поэтому наконец файл должен быть похожим на это:
#!/bin/bash
cp '/path/to/user_data/somePrefs.txt' '/path/to/software_location/somePrefs.txt'
Щелкают правой кнопкой по Вашему .sh
файл, Свойства, в соответствии с Полномочиями, проверяют, что поле "Allow executing file as program"
открывает, "Startup Applications" (нажмите кнопку запуска и ищите его)
, нажимают "Add"
, можно ввести то, что Вы хотите на "Имя", и поля "Comment"
нажимают "Browse..." и выбирают Ваш .sh
сделанный файл
. аплодисменты.
, Если Вы нуждаетесь в помощи с шагом 3, говорят мне в комментарии
<час> , можно открыть новый терминал. Перетащите эти somePrefs.txt
файлы (по одному) в терминал. То, что появляется в терминале, является полным путем.
Теперь это - команда, которая должна достигнуть того, что Вы хотите:
cat /user_data/somePrefs.txt > /software_location/somePrefs.txt
Теперь у нас есть три сценария:
Запуск, иначе загрузитесь:
в этом случае мы можем использовать systemd
программа для достижения, это при каждой начальной загрузке
755
с: chmod 755 name_of_file литий> <литий> Создает systemd
сервисный файл как таким образом:
[Unit]
Description=copy script
[Service]
Type=simple
ExecStart=/bin/bash -c "/path/to/file/copy.sh"
[Install]
WantedBy=multi-user.target
литий> <литий> Вызов это, что Вы можете, здесь я назову его cop.service
Место, с которым файл в /etc/systemd/system/
Включает его:
sudo systemctl enable cop
литий> В перезагрузке:
Использование cron
для выполнения его.
Настроенный это как так:
crontab -e
@reboot /path/to/cop.sh
литий> <литий> И в каждой перезагрузке, которая должна работать
литий>При входе в систему выхода из системы:
/home/$USER/.bashrc
файл и это будут выполнены при каждом выходе из системы и входе в систему chmod +x /path/to/cop.sh
/path/to/cop.sh
Исходный файл файла source ~/.bashrc
сценарий Простой выборки с Вашей командой был бы:
#!/bin/bash
cat /user_data/somePrefs.txt > /software_location/somePrefs.txt
ПРИМЕЧАНИЕ:
необходимо было бы изменить пути к каталогам согласно собственной ситуации.