仅复制文件,包括子文件夹中的文件
Copy only files including files in subfolder
我有两个结构相同的根文件夹:
- 文件夹1
- 子文件夹 1
- 文件 1
- 文件 2
- 子文件夹 2
- 文件 3
- 文件 4
- 子文件夹 3
- 文件5
- 文件 6
- 文件 7
- 文件8
如何将 'Folder1' 中的所有文件(包括其子文件夹中的文件)复制到另一个目标名称 'Folder2'。
'Folder2' 与 'Folder1' 具有相同的结构,所有子文件夹都已在 'Folder2' 中创建。
使用rsync工具
数据设置:使用各自的子目录创建 Folder1 和 Folder2
:~/User> ls -laRt Folder1/
Folder1/:
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f7
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f8
drwxr-xr-x 2 test test 4096 2015-09-29 09:08 sub3
drwxr-xr-x 2 test test 4096 2015-09-29 09:08 sub2
drwxr-xr-x 2 test test 4096 2015-09-29 09:08 sub1
Folder1/sub3:
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f5
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f6
Folder1/sub2:
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f3
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f4
Folder1/sub1:
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f1
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f2
:~/User> ls -laRt Folder2
drwxr-xr-x 2 test test 4096 2015-09-29 09:10 sub1
drwxr-xr-x 2 test test 4096 2015-09-29 09:10 sub2
drwxr-xr-x 2 test test 4096 2015-09-29 09:10 sub3
使用 rsync 复制
:~/User> rsync -avh Folder1/ Folder2/
building file list ... done
./
f7
f8
sub1/
sub1/f1
sub1/f2
sub2/
sub2/f3
sub2/f4
sub3/
sub3/f5
sub3/f6
sent 537 bytes received 220 bytes 1.51K bytes/sec
total size is 0 speedup is 0.00
验证
:~/User> ls -laRt Folder2
Folder2:
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f7
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f8
drwxr-xr-x 2 test test 4096 2015-09-29 09:08 sub3
drwxr-xr-x 2 test test 4096 2015-09-29 09:08 sub2
drwxr-xr-x 2 test test 4096 2015-09-29 09:08 sub1
Folder2/sub3:
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f5
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f6
Folder2/sub2:
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f3
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f4
Folder2/sub1:
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f1
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f2
一个简单的
cp -a /path/to/folder1/* /path/to/folder2
会成功的。该命令将检查 folder1
的子文件夹是否已存在于 folder2
中(如果不存在则创建它),复制包含的文件并对找到的任何子文件夹递归执行此操作。
有关详细信息,请参阅 the cp man page(您也可以通过发出 man cp
在 shell 上本地阅读)。
我有两个结构相同的根文件夹:
- 文件夹1
- 子文件夹 1
- 文件 1
- 文件 2
- 子文件夹 2
- 文件 3
- 文件 4
- 子文件夹 3
- 文件5
- 文件 6
- 文件 7
- 文件8
- 子文件夹 1
如何将 'Folder1' 中的所有文件(包括其子文件夹中的文件)复制到另一个目标名称 'Folder2'。
'Folder2' 与 'Folder1' 具有相同的结构,所有子文件夹都已在 'Folder2' 中创建。
使用rsync工具
数据设置:使用各自的子目录创建 Folder1 和 Folder2
:~/User> ls -laRt Folder1/
Folder1/:
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f7
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f8
drwxr-xr-x 2 test test 4096 2015-09-29 09:08 sub3
drwxr-xr-x 2 test test 4096 2015-09-29 09:08 sub2
drwxr-xr-x 2 test test 4096 2015-09-29 09:08 sub1
Folder1/sub3:
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f5
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f6
Folder1/sub2:
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f3
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f4
Folder1/sub1:
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f1
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f2
:~/User> ls -laRt Folder2
drwxr-xr-x 2 test test 4096 2015-09-29 09:10 sub1
drwxr-xr-x 2 test test 4096 2015-09-29 09:10 sub2
drwxr-xr-x 2 test test 4096 2015-09-29 09:10 sub3
使用 rsync 复制
:~/User> rsync -avh Folder1/ Folder2/
building file list ... done
./
f7
f8
sub1/
sub1/f1
sub1/f2
sub2/
sub2/f3
sub2/f4
sub3/
sub3/f5
sub3/f6
sent 537 bytes received 220 bytes 1.51K bytes/sec
total size is 0 speedup is 0.00
验证
:~/User> ls -laRt Folder2
Folder2:
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f7
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f8
drwxr-xr-x 2 test test 4096 2015-09-29 09:08 sub3
drwxr-xr-x 2 test test 4096 2015-09-29 09:08 sub2
drwxr-xr-x 2 test test 4096 2015-09-29 09:08 sub1
Folder2/sub3:
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f5
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f6
Folder2/sub2:
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f3
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f4
Folder2/sub1:
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f1
-rw-r--r-- 1 test test 0 2015-09-29 09:08 f2
一个简单的
cp -a /path/to/folder1/* /path/to/folder2
会成功的。该命令将检查 folder1
的子文件夹是否已存在于 folder2
中(如果不存在则创建它),复制包含的文件并对找到的任何子文件夹递归执行此操作。
有关详细信息,请参阅 the cp man page(您也可以通过发出 man cp
在 shell 上本地阅读)。