与此问题相关
问题的简短描述:
当源树内部有安装点时,即使使用-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) 我有大树,里面有很多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 薄荷上。
我购买了一台新的 Windows 10 PC 并使用(以管理员身份)安装了 WSL 2
\nwsl --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)\nwsl --install\n
Run Code Online (Sandbox Code Playgroud)\n在进行搜索时,这似乎与ARG_MAX
. 在新电脑上
>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
在新电脑上进行更正吗?上面的值在新电脑上看起来很奇怪。
仅供参考,在新电脑上,Ubuntu 说
\n>xargs --show-limits\nYour environment variables take …
Run Code Online (Sandbox Code Playgroud)