Linux的cp与mv

用于测试的目录树如下:

1
2
3
4
.
├── folder-1
│   └── file
└── folder-2
1
2
3
cp folder-1/* folder-2
等效于
cp folder-1/* folder-2/
1
2
3
4
5
.
├── folder-1
│   └── file
└── folder-2
    └── file

cp -r递归复制。

用于测试的目录树如下:

1
2
3
4
.
├── folder-1
│   └── file
└── folder-2
1
2
3
4
5
6
7
cp -r folder-1 folder-2
# 等效于
cp -r folder-1/ folder-2
# 等效于
cp -r folder-1 folder-2/
# 等效于
cp -r folder-1/ folder-2/
1
2
3
4
5
6
.
├── folder-1
│   └── file
└── folder-2
    └── folder-1
        └── file

用于测试的目录树如下:

1
2
3
.
└── folder-1
    └── file

注意, folder-2是不存在的目录。

1
2
3
cp -r folder-1 folder-2
# 等效于
cp folder-1 folder-2
1
2
3
4
5
.
├── folder-1
│   └── file
└── folder-2
    └── file

用于测试的目录树如下:

1
2
3
4
.
├── folder-1
│   └── file
└── folder-2

注意, folder-3是不存在的目录。

1
cp -r folder-1 folder-2/folder-3
1
2
3
4
5
6
.
├── folder-1
│   └── file
└── folder-2
    └── folder-3
        └── file

用于测试的目录树如下:

1
2
3
4
5
.
├── folder-1
└── folder-a
    └── folder-b
        └── file
1
cp --parents folder-a/folder-b/file folder-1
1
2
3
4
5
6
7
8
.
├── folder-1
│   └── folder-a
│       └── folder-b
│           └── file
└── folder-a
    └── folder-b
        └── file
效果不同于cp -r
1
cp -r folder-a/folder-b/file folder-1
1
2
3
4
5
6
.
├── folder-1
│   └── file
└── folder-a
    └── folder-b
        └── file

用于测试的目录树如下:

1
2
3
4
5
.
├── folder-1
└── folder-a
    └── folder-b
        └── file

注意, folder-2是不存在的目录。

1
cp --parents folder-a/folder-b/file folder-1/folder-2

结果是, 并不会自动创建不存在的目标目录, 所以目标目录必须存在才能进行复制过程。

用于测试的目录树如下:

1
2
3
4
.
├── folder-1
│   └── file
└── folder-2
1
2
3
4
5
6
7
mv folder-1 folder-2
等效于
mv folder-1/ folder-2
等效于
mv folder-1 folder-2/
等效于
mv folder-1/ folder-2/
1
2
3
4
.
└── folder-2
    └── folder-1
        └── file

用于测试的目录树如下:

1
2
3
4
.
├── folder-1
│   └── file
└── folder-2
1
2
3
mv folder-1/* folder-2
等效于
mv folder-1/* folder-2/
1
2
3
4
.
├── folder-1
└── folder-2
    └── file