Tar:无法统计:没有这样的文件或目录

问题描述 投票:0回答:1

我正在尝试创建一个从多个源目录到不同目标目录的备份 bash 脚本。

所以我使用 find 来搜索源目录文件夹名称,将其保存到变量中并将其用于 tar 文件名。

我还将 tar 源目录指向 $file ,但是当我执行脚本时,它返回一个错误(Tar:无法统计:没有这样的文件或目录)

for file in `find $src_dir -type d -maxdepth 1 -mindepth 1 -name $skip_containers -prune -o -printf '%f\n' | grep -v "\.$"`; do 
  echo "Compressing $file..."
  tar zcf "$backup_dir/$file.tar.gz" -T $file 
done

使用的变量

  1. src_dir=指向我的备份数据的来源

  2. skip_containers=我正在跳过的一些目录

  3. backup_dir=指向外部备份驱动器(与我的源文件系统相同)

  4. file=tar 文件名以及源目录循环

抱歉,这里是新手,因此我们将不胜感激。 几周来我一直在拔头发才能解决这个问题。

提前致谢

bash shell find tar
1个回答
0
投票

你需要防止分词

find /path/to/search -type f -name "*.txt" -print0 |
    xargs -0 tar zcf "$backup_dir/$file.tar.gz"

参见:https://www.gnu.org/software/bash/manual/html_node/Word-Splitting.html

© www.soinside.com 2019 - 2024. All rights reserved.