步骤 3 的提示

步骤 3 的提示

我试图在计算机重新启动后登录或注销然后登录时覆盖文件。

  • 文件位置:/user_data/somePrefs.txt
  • 要替换的文件的位置: /software_location/somePrefs.txt

我当然可以尝试手动复制粘贴的方法来覆盖文件,但每当我的计算机重新启动/注销时这样做就会很麻烦。

在启动期间是否有一种自动化的方法可以执行此操作?

答案1

  1. 右键单击,新建文档,清空文档。(在任何你喜欢的地方创建). 将其命名为以 结尾的任何名称.sh(例如:StartupCommands.sh)
  2. #!/bin/bash在第一行输入

  3. (棘手的部分)在下一行输入复制命令。它应该与下面的行完全相同。不要忘记'引号

    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'
  1. 右键单击您的.sh文件,属性,在权限下,选中“允许以程序形式执行文件”框

  2. 打开“启动应用程序”(按开始按钮并搜索)

  3. 点击“添加”

  4. 您可以在“名称”和“评论”字段中输入您想要的内容

  5. 单击“浏览...”并选择您的.sh文件

完成了。干杯。

如果您需要第 3 步的帮助,请在评论中告诉我


步骤 3 的提示

somePrefs.txt您可以打开一个新的终端。将文件(一次一个)拖放到终端中。终端中显示的是绝对路径。

答案2

现在这是实现您想要的功能所需的命令:

cat /user_data/somePrefs.txt > /software_location/somePrefs.txt

现在我们有三种场景:

  1. 启动,又称引导:

    • 在这种情况下,我们可以使用systemd程序在每次启动时实现这一点

      1. 使用上述命令在任意位置创建脚本。
      2. 使用以下命令获取权限755:chmod 755 name_of_file
      3. systemd像这样创建服务文件:

        [Unit]
        Description=copy script
        
        [Service]
        Type=simple
        ExecStart=/bin/bash -c "/path/to/file/copy.sh"
        
        [Install]
        WantedBy=multi-user.target
        
      4. 不管你怎么称呼它,我都这样称呼它cop.service

      5. 将该文件放在/etc/systemd/system/

      6. 使用以下命令启用它:

        • sudo systemctl enable cop
      7. 每次启动时都会运行该文件
  2. 重启时:

    • 使用cron来运行它。

      1. 像这样设置:

        crontab -e
        @reboot /path/to/cop.sh
        
      2. 每次重启时都应该运行

  3. 在注销-登录时:

    • 将该命令文件放在/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

笔记:

您需要根据自己的情况更改目录路径。

相关内容