Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在当前目录中创建新的TAR文件到新目录,而不使用;mv";(shell脚本)_Linux_Bash_Shell_Tar - Fatal编程技术网

Linux 在当前目录中创建新的TAR文件到新目录,而不使用;mv";(shell脚本)

Linux 在当前目录中创建新的TAR文件到新目录,而不使用;mv";(shell脚本),linux,bash,shell,tar,Linux,Bash,Shell,Tar,我目前正在设置一个备份管理器来自动归档来自Web服务器的目录。我正在寻找一个答案,即如何在归档过程结束后不使用mv将当前目录的新TAR文件创建到新的(不同的)目录。请参阅我的命令: dcreate=$(date +%Y_%d_%m) tar -cvpzf backup_$dcreate.tar.gz plugins/folder_to_archive/ 这个命令工作得很好,但我现在正在研究如何在ARCHV进程终止后直接将其移动到新目录,例如: plugins/plugin\u name/到p

我目前正在设置一个备份管理器来自动归档来自Web服务器的目录。我正在寻找一个答案,即如何在归档过程结束后不使用
mv
将当前目录的新TAR文件创建到新的(不同的)目录。请参阅我的命令:

dcreate=$(date +%Y_%d_%m) tar -cvpzf backup_$dcreate.tar.gz plugins/folder_to_archive/ 
这个命令工作得很好,但我现在正在研究如何在ARCHV进程终止后直接将其移动到新目录,例如:

plugins/plugin\u name/
plugins/backups/

谢谢你的帮助


tar的
-f
选项是存档的目标文件;它可以在你想要的任何地方,也就是说,你可以改变

-cvpzf“backup_u$dcreate.tar.gz”

-cvpzf“plugins/backups/backup_u$dcreate.tar.gz”


如果您希望在
插件/备份中创建新存档

为什么要使用“不使用
mv
”约束?您实际上打算通过这种方式完成或实现什么?(…顺便问一下,我的理解正确吗,您的目标是在编写部分创建的归档文件时不使其可见?)(顺便说一句,
tar
根本不是一个标准化的命令——用于创建
tar
-格式档案的POSIX标准化命令——因此很难说任何给定操作系统的
tar
命令实际上会做什么或不会做什么;因为您被标记为Linux,我们可能会假设GNU,但milage或扩展可能会(阿利)。我认为可以通过将我想要的任务作为参数传递给TAR来完成。当然,我可以将输出移动到一个新目录,但这是最佳做法吗?您当然可以让
TAR
在您选择的目录中创建文件,但如果您希望它作为一个原子操作显示在那里,则需要一个单独的
mv
事实适用。这是缺少引号。
“backup_uu$dcreate.tar.gz”
backup_uu$decreate.tar.gz
更为正确:事实上,如果
dcreate
包含空格,则会将其拆分为多个不同的参数,而不是作为单个文件名传递。(如果
IFS
中包含
\uuu
,或者日期中存在另一个字符,则当前值甚至可能出现这种情况).你是对的,但是你的评论会对我刚才提出的原始问题更有意义。正如你在那里看到的,
$dcreate
实际上不会包含空格。但是我编辑了我的帖子,将引用内容包括在内。一个问题应该反映OP有改进空间的地方——如果他们知道ev的话任何事情,他们都不会问。答案应该是正确的做事方式,不仅是OP,还有任何有类似问题的人都可以参考。@Dietmar:非常感谢你的回答。你从上面提出的解决方案也很有效,但事实上我的问题不是很清楚。无论如何,谢谢你的帮助。非常感谢。问候。@Allan如果回答了您的问题,请接受答案