Linux的cp与mv
目录
1 cp
1.1 复制目录下所有文件
用于测试的目录树如下:
.
├── folder-1
│ └── file
└── folder-2
cp folder-1/* folder-2
等效于
cp folder-1/* folder-2/
.
├── folder-1
│ └── file
└── folder-2
└── file
1.2 cp -r
cp -r
递归复制。
1.2.1 例1
用于测试的目录树如下:
.
├── folder-1
│ └── file
└── folder-2
cp -r folder-1 folder-2
# 等效于
cp -r folder-1/ folder-2
# 等效于
cp -r folder-1 folder-2/
# 等效于
cp -r folder-1/ folder-2/
.
├── folder-1
│ └── file
└── folder-2
└── folder-1
└── file
1.2.2 例2
用于测试的目录树如下:
.
└── folder-1
└── file
注意, folder-2
是不存在的目录。
cp -r folder-1 folder-2
# 等效于
cp folder-1 folder-2
.
├── folder-1
│ └── file
└── folder-2
└── file
1.2.3 例3
用于测试的目录树如下:
.
├── folder-1
│ └── file
└── folder-2
注意, folder-3
是不存在的目录。
cp -r folder-1 folder-2/folder-3
.
├── folder-1
│ └── file
└── folder-2
└── folder-3
└── file
1.3 cp –parents
1.3.1 目标目录存在
用于测试的目录树如下:
.
├── folder-1
└── folder-a
└── folder-b
└── file
cp --parents folder-a/folder-b/file folder-1
.
├── folder-1
│ └── folder-a
│ └── folder-b
│ └── file
└── folder-a
└── folder-b
└── file
效果不同于cp -r
cp -r folder-a/folder-b/file folder-1
.
├── folder-1
│ └── file
└── folder-a
└── folder-b
└── file
1.3.2 目标目录不存在
用于测试的目录树如下:
.
├── folder-1
└── folder-a
└── folder-b
└── file
注意, folder-2
是不存在的目录。
cp --parents folder-a/folder-b/file folder-1/folder-2
结果是, 并不会自动创建不存在的目标目录, 所以目标目录必须存在才能进行复制过程。
2 mv
2.1 移动目录
用于测试的目录树如下:
.
├── folder-1
│ └── file
└── folder-2
mv folder-1 folder-2
等效于
mv folder-1/ folder-2
等效于
mv folder-1 folder-2/
等效于
mv folder-1/ folder-2/
.
└── folder-2
└── folder-1
└── file
2.2 移动目录下所有文件
用于测试的目录树如下:
.
├── folder-1
│ └── file
└── folder-2
mv folder-1/* folder-2
等效于
mv folder-1/* folder-2/
.
├── folder-1
└── folder-2
└── file