Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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 Bash备份脚本。需要帮助查找文件并读取它吗_Linux_Bash_Backup - Fatal编程技术网

Linux Bash备份脚本。需要帮助查找文件并读取它吗

Linux Bash备份脚本。需要帮助查找文件并读取它吗,linux,bash,backup,Linux,Bash,Backup,嗨,我第一次尝试写bash脚本,所以我有点不擅长 我需要在主目录中查找文件的帮助(此文件包含我要备份的文件列表)。在此之后,我想循环文件中的所有行并复制文件 这是我尝试过的,但似乎不起作用: find /home$n -name .file_with_backup_register | while read line ; do cp "$line" /var/backup/temp; done 当我试图在脚本中使用tar czvf$(日期+%m\u%d\u%Y)il-get进行tar备份时:

嗨,我第一次尝试写bash脚本,所以我有点不擅长

我需要在主目录中查找文件的帮助(此文件包含我要备份的文件列表)。在此之后,我想循环文件中的所有行并复制文件

这是我尝试过的,但似乎不起作用:

find /home$n -name .file_with_backup_register | while read line ;
do cp "$line" /var/backup/temp;
done
当我试图在脚本中使用
tar czvf$(日期+%m\u%d\u%Y)
il-get进行tar备份时:

tar: Cowardly refusing to create an empty archive.
所以我猜它是find/home$n。。。行,该行不起作用

您可以使用以下命令:

$ find $HOME -name file_with_backup_register | xargs cat | xargs -I % cp % /var/backup/temp
如果您不确定
find
是否成功定位您的注册文件,只需调用:

$ find $HOME -name file_with_backup_register
并查看是否输出其有效位置

编辑查看@Barmar在您的问题下的评论,他可能是对的。不过,上述答案也可能有用,因为它简化了您的解决方案。

如果将“-T”选项与“tar”一起使用,则可以指定包含要备份的文件名的文件名

tar -cv -T filelist -f tarball.tar

显示如何将
tar
放入备份脚本。问题可能在于您如何指定要放入存档的文件。tar-czvf$(date+%m\u%d\u%Y)我站在/var/backup/temp中,想用名称month、day、year对完整目录进行tar您的
,而read
循环不会读取
的内容。file\u with\u backup\u register
文件。它正在读取
find
的输出,这只是所有这些文件的列表。
tar
需要指定要放入存档的文件和目录的参数。看起来你们并没有给它目录参数。好的,thx,但我仍然需要在读这行的时候给它目录参数,但我想我可能得到了一个解决方案。当我知道它是否有效时,我可以输入回去。我想对完整的目录进行tar,我站在目录中,而我运行tar czvf$(date+%m\u%d\u%Y)。但我认为是找到/回家了。。。。那条线不行。我在我的纸条上画了几行,它创建了我的临时目录,但它没有任何文件到目录中。告诉我们$n是什么。你能运行“echo$n”并告诉我们输出结果吗。然后跑。。。find/home-name“.filewith”您好,我通过在查找行中添加| xargs cat |解决了我遇到的问题,从而解决了我的问题。但是你建议的方法似乎简单多了。Xargs:invalid option'-J'il-get当我尝试这一行时,我会得到,但是我可能做了错事,我还不太明白这一行是怎么工作的。@user3176770-也许尝试
-i
而不是
-J