V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
piaochen0
V2EX  ›  Linux

tar 命令找不到文件的错误

  •  
  •   piaochen0 · 2017-12-31 09:59:52 +08:00 · 3394 次点击
    这是一个创建于 2556 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    6 条回复    2018-01-01 07:45:20 +08:00
    piaochen0
        1
    piaochen0  
    OP
       2017-12-31 10:20:50 +08:00
    find 命令只要再加一个-name "*.sh",这样就没问题,好奇怪
    iwishing
        2
    iwishing  
       2017-12-31 10:29:10 +08:00
    第二个命令在 17.10 可行

    我猜,权限问题?
    jworg
        3
    jworg  
       2017-12-31 10:36:18 +08:00
    试试加个 find 加个参数 -print
    piaochen0
        4
    piaochen0  
    OP
       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
        5
    ryd994  
       2017-12-31 17:30:37 +08:00 via Android
    和 xargs 合用的时候不要 print
    最后加-print0
    xargs 加 -0
    这样会用 null 分隔,没有分割的问题
    jyf007
        6
    jyf007  
       2018-01-01 07:45:20 +08:00
    please use git,and maybe you use symbol link on the different filesystem
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1526 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 16:50 · PVG 00:50 · LAX 08:50 · JFK 11:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.