如何在 linux 平台中每三小时将文件夹内容移动到唯一文件夹?

How to move content of folder to unique folders every three hours in linux platform?

每当我的计算机启动时,我想将文件夹的内容移动到唯一的文件夹中。

例如,文件夹 "A" 有一些图片,然后在启动时我想将内容移动到新文件夹 "B"。 3 小时后,我想再次将内容从文件夹 "A" 移动到新创建的文件夹 "C"。每三个小时我想要一个新文件夹来保存内容。有人可以帮忙吗?

我创建了一个根据指定参数创建备份的脚本。要将其添加到您的系统,请执行以下步骤:

  1. 您可以另存为 folder_backup(不要忘记通过执行 $ chmod +x folder_backup 使脚本可执行)。
  2. (可选步骤) 之后你可以将它复制到 /usr/local/bin 如果你希望你的脚本可以作为命令从任何目录执行(sudo cp folder_backup /usr/local/bin ).

现在您可以通过键入 $ ./folder_backup$ folder_backup 来执行脚本(如果您将其复制/移动到 /usr/local/bin 或其他 bin 目录)。

用法: folder_backup FOLDER_NAME [BACKUP_FOLDER_NAME] (备份文件夹名称是可选的,如果你不指定它将保存备份在 FOLDER_NAME_Year-Month-Day_Hour:Minutes.

现在您已经具备了所需的一切,您只需在 while 或 for 循环中执行脚本,例如:while true; do sleep TIME_IN_SECONDS; folder_backup FOLDER_NAME; done。如果指定的文件夹不为空,这将创建带有时间戳的备份文件夹。对于您的特定情况 TIME_IN_SECONDS 应该是 10800,因此命令看起来像 while true; do sleep 10800; folder_backup A; done 但是您可以编写自己的备份文件夹命名算法并将其添加为名称 [=25= 之后的第二个变量].另外你应该注意,这不会 运行 在后台,如果你想让它在后台 运行 只需将 & 添加到 while 循环的末尾(在 done).

希望这就是您要找的!!!

#!/bin/bash

create_backup () {
    # Check if 2 arguments are given to function.
    if [ -z ${3+x} ]; then
        # Check if folder from which we will make backup exists.
        if [ -d  ]; then
            echo "Creating backup in  of folder ..."
            mkdir -p 
            mv /* /
            echo "Backup stored in ."
        else
            echo "There is no folder in !"
            exit 1
        fi
    else
        echo "You must specify folder and backup folder name!"
        exit 1
    fi
}

if [ -z ${2+x} ]; then
    # Only main folder specified
    main_folder=
    date_stamp=`date +%Y-%m-%d_%H:%M`
    backup_folder=${main_folder}_"${date_stamp}
elif [ -z ${3+x} ]; then
    main_folder=
    backup_folder=
else
    echo "Specify folder path or folder name and backup folder path!"
    exit 1
fi

create_backup ${main_folder} ${backup_folder}

crontab 可以轻松实现你的需求,更多关于启动脚本的解释是here

重启或启动activity:

#crontab -e
@reboot  /home/user/startup_script.sh

固定间隔:

#crontab -e
* */3 * * *  /home/user/interval_script.sh

注意:根据您的需要设计脚本。