目录

Linux的cp与mv

用于测试的目录树如下:

text

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

bash

cp folder-1/* folder-2
等效于
cp folder-1/* folder-2/

text

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

cp -r递归复制。

用于测试的目录树如下:

text

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

bash

cp -r folder-1 folder-2
# 等效于
cp -r folder-1/ folder-2
# 等效于
cp -r folder-1 folder-2/
# 等效于
cp -r folder-1/ folder-2/

text

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

用于测试的目录树如下:

text

.
└── folder-1
    └── file

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

bash

cp -r folder-1 folder-2
# 等效于
cp folder-1 folder-2

text

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

用于测试的目录树如下:

text

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

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

bash

cp -r folder-1 folder-2/folder-3

text

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

用于测试的目录树如下:

text

.
├── folder-1
└── folder-a
    └── folder-b
        └── file

bash

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

text

.
├── folder-1
│   └── folder-a
│       └── folder-b
│           └── file
└── folder-a
    └── folder-b
        └── file
效果不同于cp -r

bash

cp -r folder-a/folder-b/file folder-1

text

.
├── folder-1
│   └── file
└── folder-a
    └── folder-b
        └── file

用于测试的目录树如下:

text

.
├── folder-1
└── folder-a
    └── folder-b
        └── file

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

bash

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

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

用于测试的目录树如下:

text

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

bash

mv folder-1 folder-2
等效于
mv folder-1/ folder-2
等效于
mv folder-1 folder-2/
等效于
mv folder-1/ folder-2/

text

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

用于测试的目录树如下:

text

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

bash

mv folder-1/* folder-2
等效于
mv folder-1/* folder-2/

text

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