linuxtar命令后台执行

worktile 其他 116

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在linux系统中,使用tar命令可以对文件或目录进行压缩和解压缩操作。默认情况下,tar命令是在前台执行的,即tar命令的操作会显示在终端上,需要手动输入命令来完成操作。

    如果希望将tar命令放在后台执行,可以使用以下方法:

    1. 使用nohup命令:nohup命令可以在后台运行一个命令,即使终端关闭,命令也会继续执行。在执行tar命令时,在命令前加上nohup即可实现后台执行。

    例如:nohup tar -cvf archive.tar.gz /path/to/directory &

    上述命令将目录/path/to/directory下的文件和子目录打包成一个名为archive.tar.gz的压缩文件,并在后台执行。执行结果会被输出到nohup.out文件中。

    2. 使用screen命令:screen命令可以创建一个虚拟终端,并在其中执行命令。使用screen命令后,终端关闭后,命令仍会在虚拟终端中继续执行。

    首先,使用screen命令创建一个新的虚拟终端:screen

    然后,在虚拟终端中执行tar命令:tar -cvf archive.tar.gz /path/to/directory

    按下Ctrl + A然后按下Ctrl + D,可以暂时离开虚拟终端,命令会在后台继续执行。

    当需要重新进入虚拟终端时,使用以下命令:screen -r

    以上就是在linux系统中将tar命令放在后台执行的两种方法:使用nohup命令和使用screen命令。根据实际情况选择其中一种方法来实现后台执行。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Linux系统中,可以使用`tar`命令来创建、压缩和解压缩文件和目录。默认情况下,`tar`命令是在前台执行的,即它会在执行期间显示进度和相关信息。然而,有时候我们可能需要将`tar`命令放到后台执行,以便释放终端会话并在后台运行命令。

    要在后台执行`tar`命令,可以使用以下方法:

    1. 使用`&`符号:在命令结尾添加`&`符号,例如:
    “`
    tar -czvf archive.tar.gz directory/ &
    “`
    这将使`tar`命令在后台运行,并在终端显示进程ID。

    2. 使用`nohup`命令:`nohup`命令用于在后台执行进程,并在终端关闭后继续执行。使用方法如下:
    “`
    nohup tar -czvf archive.tar.gz directory/ &
    “`
    这将使用`nohup`命令将`tar`命令放到后台运行,并将输出重定向到一个名为`nohup.out`的文件中。

    3. 使用`screen`命令:`screen`命令提供了一个虚拟终端会话,可以在其中运行命令,并在需要时分离和重新连接到该会话。使用方法如下:
    “`
    screen -S session_name
    tar -czvf archive.tar.gz directory/
    “`
    这将创建一个名为`session_name`的会话,并在其中运行`tar`命令。要分离会话,请按下CTRL+A,然后按下D键。要重新连接到会话,请使用`screen -r session_name`命令。

    4. 使用`at`命令:`at`命令用于在指定的时间执行命令。要在后台执行`tar`命令并在一段时间后运行,可以使用以下方法:
    “`
    echo “tar -czvf archive.tar.gz directory/” | at now + 1 minute
    “`
    这将在当前时间的一分钟后执行`tar`命令。

    5. 使用`systemd`服务:`systemd`是Linux的系统和服务管理器,可以使用它来创建一个后台运行的`tar`命令服务。首先,创建一个`tar.service`文件,内容如下:
    “`
    [Unit]
    Description=My Tar Service

    [Service]
    ExecStart=/usr/bin/tar -czvf archive.tar.gz directory/
    Type=simple

    [Install]
    WantedBy=multi-user.target
    “`
    然后,将该文件保存为`/etc/systemd/system/tar.service`。最后,使用以下命令启动和管理该服务:
    “`
    sudo systemctl start tar.service # 启动该服务
    sudo systemctl enable tar.service # 设置该服务为开机自启动
    sudo systemctl status tar.service # 查看服务状态
    “`

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Linux中,要在后台执行tar命令,可以使用以下几种方法:

    1. 使用nohup命令:
    将tar命令放入一个脚本文件中,例如执行tar命令的脚本文件名为tar_script.sh。然后使用以下命令执行脚本并将其放入后台执行:
    “`shell
    nohup sh tar_script.sh &
    “`
    通过使用nohup命令和&符号,可以在后台执行tar命令。nohup命令的作用是忽略SIGHUP信号,这样即使当前会话关闭,tar命令仍然可以继续执行。

    2. 使用screen命令:
    首先安装screen:
    “`shell
    sudo apt-get install screen
    “`
    然后使用以下命令创建一个新的screen会话:
    “`shell
    screen -S myscreen
    “`
    进入该会话后,执行tar命令,然后使用Ctrl+A+D组合键将screen会话切换到后台。
    下次要回到该screen会话时,可以使用以下命令:
    “`shell
    screen -r myscreen
    “`

    3. 使用disown命令:
    通过该方法可以将一个正在运行的前台任务放到后台执行。
    首先执行tar命令,然后按下Ctrl+Z暂停该任务,并使用bg命令将其切换到后台执行:
    “`shell
    bg
    “`
    使用jobs命令可以查看后台任务的状态。
    然后使用disown命令将该任务与当前终端会话分离:
    “`shell
    disown %[任务号]
    “`

    这些方法都可以实现在后台执行tar命令,选择一种适合自己的方法即可。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部