小编Nas*_*ser的帖子

当源树具有安装点时,如何告诉 rsync 在文件上保留时间戳

与此问题相关

问题的简短描述:

当源树内部有安装点时,即使使用-a选项,也不会保留复制到目标树时该安装点内文件的时间戳

详细说明:

假设这是源树:

                       /home/                           /home/
                         |                                |
                        me/                             BACKUP/
                         |                                |
                    +----+----------+                +----+-------+
                    |    |          |                |    |       |
                 data/  foo.txt    boo.txt         data/ foo.txt boo.txt
                    |                                |
                   a.txt                           a.txt
Run Code Online (Sandbox Code Playgroud)

其中data/上述被安装外部USB硬盘。一切都是ext4文件系统。源中的所有内容都归我所有me

BACKUP 也正好是一个挂载点,备份U盘。

发出这个命令后rsync -av --delete /home/me/ /home/BACKUP/,我发现它/home/BACKUP/data/下面的所有内容都有当前时间戳,就好像这些文件是现在创建的,而不是/home/me/data/. 外面的其他文件和文件夹data确实保留了时间戳。

问题是:如何rsync在上述设置中使用以告诉它保留所有文件和文件夹上的时间戳,甚至是挂载点上的文件和文件夹?

我在用:

>uname -a
Linux 3.5.0-17-generic #28-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux

>rsync -v
rsync  version 3.0.9  protocol version 30
Run Code Online (Sandbox Code Playgroud)

backup rsync

45
推荐指数
2
解决办法
11万
查看次数

如何删除大树中特定命名文件夹中具有特定扩展名的所有文件?

我有大树,里面有很多pdf文件。我想删除pdf这棵树中的文件,但只有那些pdf名为的子文件夹中的文件rules/There are other types of files inside rules/. 该rules/子文件夹没有其他的子文件夹。

例如,我有这棵树。“来源”以下的所有内容

  source/
         A/
            rules/*.pdf, *.txt, *.c,etc..
            etc/
         B/
            keep_this.pdf                
            rules/*.pdf
            whatever/
         C/ 
            D/
               rules/*.pdf
               something/
Run Code Online (Sandbox Code Playgroud)

等等。pdf到处都是文件,但我只想删除pdf名为文件夹中的所有文件,rules/而没有其他地方。

我想我需要使用

  cd source
  find  / -type d -name "rules"  -print0 | xargs -0 <<<rm *.pdf?? now what?>>>
Run Code Online (Sandbox Code Playgroud)

但是我不确定在获得所有命名的子文件夹列表后该怎么做 rules/

任何帮助表示赞赏。

在 Linux 薄荷上。

find files

6
推荐指数
2
解决办法
1447
查看次数

execvp: /bin/bash: 在 Ubuntu 20.04 上参数列表太长,但在 Ubuntu 18.04 上没问题(全部使用 Windows 10 子系统)

我购买了一台新的 Windows 10 PC 并使用(以管理员身份)安装了 WSL 2

\n
wsl --install\n
Run Code Online (Sandbox Code Playgroud)\n

这将安装 WSL 2 和 Ubuntu 20.04 LTS。然后,我从使用相同 Windows 10 pro 操作系统并使用 WSL2 和 Ubuntu 18.04.6 LTS 的旧 PC 复制了我的文件。

\n

现在,在同一文件夹中使用完全相同的 Makefile 会出现错误

\n
 make[1]: execvp: /bin/bash: Argument list too long\n
Run Code Online (Sandbox Code Playgroud)\n
wsl --install\n
Run Code Online (Sandbox Code Playgroud)\n

在进行搜索时,这似乎与ARG_MAX. 在新电脑上

\n
 >getconf ARG_MAX\n 4611686018427387903\n
Run Code Online (Sandbox Code Playgroud)\n

在旧电脑上

\n
 >getconf ARG_MAX\n 2097152\n
Run Code Online (Sandbox Code Playgroud)\n

两台 PC 运行相同的操作系统(Windows 10)并且均为 64 位。

\n

我需要ARG_MAX在新电脑上进行更正吗?上面的值在新电脑上看起来很奇怪。

\n

仅供参考,在新电脑上,Ubuntu 说

\n
>xargs --show-limits\nYour environment variables take …
Run Code Online (Sandbox Code Playgroud)

ubuntu xargs windows-subsystem-for-linux

5
推荐指数
1
解决办法
1766
查看次数