tar 命令找不到文件的错误

2017-12-31 09:59:52 +08:00
 piaochen0

这两天在学 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

3282 次点击
所在节点    Linux
6 条回复
piaochen0
2017-12-31 10:20:50 +08:00
find 命令只要再加一个-name "*.sh",这样就没问题,好奇怪
iwishing
2017-12-31 10:29:10 +08:00
第二个命令在 17.10 可行

我猜,权限问题?
jworg
2017-12-31 10:36:18 +08:00
试试加个 find 加个参数 -print
piaochen0
2017-12-31 10:39:52 +08:00
@iwishing 该文件夹下所有的文件和文件夹,全部在 root 账户下创建,也是 root 用户登录操作的
出错涉及的子文件夹 deep1 的权限:rwxr-xr-x,
d1_1.sh 的权限:rwxr-xr-x
应该不是权限的问题,而且 find 命令只要再加一个-name "*.sh",就行了。
ryd994
2017-12-31 17:30:37 +08:00
和 xargs 合用的时候不要 print
最后加-print0
xargs 加 -0
这样会用 null 分隔,没有分割的问题
jyf007
2018-01-01 07:45:20 +08:00
please use git,and maybe you use symbol link on the different filesystem

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/418962

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX