【问题标题】:This tar command works on command line but fails in a script此 tar 命令在命令行上工作,但在脚本中失败
【发布时间】:2024-01-11 22:33:01
【问题描述】:

此 tar 命令在命令行上运行,但在脚本中失败。

代码:

find ~/ -name "sql*.db" | tar -czv -f backup.tar.gz -T -

命令行输出:

find ~/ -name "sql*.db" | tar -czv -f backup.tar.gz -T -
tar: Removing leading `/' from member names
/home/myuser/folder1/sql1.db
/home/myuser/folder2/sql2.db
/home/myuser/folder3/sql3.db
/home/myuser/folder4/sql4.db
/home/myuser/folder5/sql5.db

脚本错误:

[ps623237]$ sh backup.sh
tar: -\r: Cannot stat: No such file or directory
tar: Error is not recoverable: exiting now

【问题讨论】:

  • 不清楚您正在运行什么命令。请给出确切的命令列表、预期结果和实际结果。
  • 更不用说潜在的循环引用试图将您正在创建的存档包含在备份集中。
  • 大卫,你能解释一下潜在的循环引用吗?

标签: linux shell ftp tar


【解决方案1】:

问题是 Windows (CRLF) 而不是 Linux (LF)。我用记事本++

Edit/EOL Conversion/UNIX 

修复它。这是精炼的代码。

#!/bin/sh
DOW=$(date +"%A");
find /home/user1 -name sql*.db | tar -czv -f /home/user1/backup/$DOW.DB.tar.gz -T -

【讨论】:

    最近更新 更多