复制最新创建的目录

复制最新创建的目录

我想从最新创建的备份中进行第二次备份。因此我尝试了 shell 命令:

last='ls -tr | tail -1'
cp -r /path/.../"$last" /path/.../backup/

但它会复制一个随机备份。

它可以完美地处理 .zip 和 .tar 文件,但不能处理我这里需要的文件夹。

我在 Google 上寻找解决方案,但找不到任何与此相关的内容,我希望你能帮助我。

也可以使用目录名称,例如:

2013-09-27-05-22-45

答案1

尝试用“u”或“U”代替“t”。

根据目录的最初创建方式和使用方式,可能需要使用创建日期/时间或最后访问日期/时间。

要小心!

如果其他程序/用户正在访问这些文件夹,您将始终得到意外结果。
(那些用户也可能会更新文件夹上的时间戳!)

考虑到目录名称的格式,您可能最好按文件名排序:

last='ls | tail -1'

如果有其他文件/文件夹扰乱了输出,只需使用:

最后 = 'ls -d [0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9] | 尾部 -1'

这会将输出限制为名称具有正确布局的文件夹(4 位数字、破折号、2 位数字、破折号、2 位数字、破折号等)

答案2

我建议在这里使用“last='ls -1tr |tail -1'”。如果命令中没有“1”(一),ls 将在一行中返回目录中的所有文件。

答案3

我在脚本或 shell 中经常使用它当我处理当前目录中的目录时

alias lastd='ls -1drt * | tail -1'

“d”仅代表目录。

你可以在 shell 命令行中使用它,如下所示:

mkdir some_dir
cd $(lastd)

相关内容