技术解析

tar 命令找不到文件的错误
0
2021-06-24 14:13:31
idczone

这两天在学 shell,打算写一个命令,将最近一天内修改的文件,打成一个压缩包
我试了两种方式,第一种可行:
tar -zcvf lastmode.tar.gz find . -mtime -1 -type f
但是我打算用下面这种方式尝试:
find . -mtime -1 -type f |xargs tar -zcvf lastmode.tar.gz
报错信息如下:
tar: ./\n./deep1/d1_1.sh: Cannot stat: No such file or directory
这个是什么原因?查了半天没思路。 系统是:ubuntu16.4 root 用户 我的目录结构如下:
.
├── \
├── a.c
├── deep1
│   └── d1_1.sh
├── test1.sh
├── test2.sh
├── test3.sh
├── test4.sh
├── test5.sh
└── test6.sh


find 命令只要再加一个-name "*.sh",这样就没问题,好奇怪

第二个命令在 17.10 可行
我猜,权限问题?

试试加个 find 加个参数 -print

该文件夹下所有的文件和文件夹,全部在 root 账户下创建,也是 root 用户登录操作的
出错涉及的子文件夹 deep1 的权限:rwxr-xr-x,
d1_1.sh 的权限:rwxr-xr-x
应该不是权限的问题,而且 find 命令只要再加一个-name "*.sh",就行了。

和 xargs 合用的时候不要 print
最后加-print0
xargs 加 -0
这样会用 null 分隔,没有分割的问题

please use git,and maybe you use symbol link on the different filesystem

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服