linux - 如何将文件复制到时间戳自动生成的文件夹?

标签 linux bash unix

您好,我正在尝试将所有文​​件从文档目录复制到具有时间戳的备份目录。因此,我创建了一个名为 bk$(文件夹的时间戳)的文件夹,并且尝试将文件从 Documents 目录复制到新创建的唯一文件夹。这将在 crontab 中备份文档中的文件,当备份启动时,它将为每个备份创建由文件夹时间戳唯一标识的新目录。由于某种原因,我无法获取 cp 或 cpio -mdp。现在有人提到我可以使用 $PATH 变量,这看起来很有希望,如果这是解决方案,如果有人可以帮助我使其工作。

bkdest=home/user/backup/
bksource="/home/user/Documents/"
export PATH=/$bkdest:$PATH
mkdir /"$bkdest"bk.$(date +%Y_%m_%d_%H_%M_%S)
cp /"$bksource"* $PATH

我尝试使用的其他方法使其发挥作用:

cp $bksource * ls | tail -l | $PATH

我本来可以使用 ctime,但不幸的是它不适用于文件夹创建日期。

这是我的方法,但使用的是最新创建的文件夹而不是文件

find $HOME -type d -daystart ctime 0

如果有人可以帮我复制到该新文件夹,我将非常感激。谢谢!

最佳答案

将目标名称存储在变量中:

bkdest=/home/user/backup
bksource=/home/user/Documents

target=${bkdest}/bk.$(date +%Y_%m_%d_%H_%M_%S)
mkdir -p $target
cp ${bksource}/* ${target}/

请注意,我稍微整理了您对变量的使用。

此外,这不会复制子目录。为此,您需要使用cp -R。当我进行备份时,我更喜欢使用 rsync

关于linux - 如何将文件复制到时间戳自动生成的文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31693417/

相关文章:

linux - ubuntu bash脚本备份/home/$user但保留最新的

相当于-x的bash环境变量?

macos - 如何替换通过麦克风传来的声音? OS X

linux - 从本地传输到服务器时更改文件权限

java - 确保 Java Play Framework 始终运行的最佳方法?

linux - 文件的哪些字节保持映射?

linux - 查找当前目录*相对*目录的绝对路径

c - 调试子进程不适用于 set detach-on-fork off

linux - 如何找到单词在字符串中的位置?

.W 文件中的 C 源代码