Linux 复制、移动命令总结
准备工作:
mkdir -p ./source/dir1/dir2 \
&& touch ./source/dir1/1.txt \
&& touch ./source/dir1/dir2/2.txt
源目录如下:
labex:project/ $ tree source
source
`-- dir1|-- 1.txt`-- dir2`-- 2.txt2 directories, 2 files
复制
1.复制当前目录以及所有内容
cp -r ./source ./target # source 后的 / 可加可不加,效果一样;./target/ 的效果与 ./target 一致
如果目标目录不存在,则会创建目标目录,该目录内包含源目录下所有内容,目录结构如下:
labex:project/ $ tree ./target
./target
`-- dir1|-- 1.txt`-- dir2`-- 2.txt2 directories, 2 files
如果目标目录存在,则会将整个 source 目录及目录下的所有内容复制到 target 目录下,目录结构如下:
labex:project/ $ tree target
target
`-- source`-- dir1|-- 1.txt`-- dir2`-- 2.txt3 directories, 2 files
2.复制当前目录下的所有内容(不包含目录本身)
# 需要提前创建 target 目录
cp -r ./source/{.,}* ./target # {.,}* 代表除了普通文件,所有的隐藏文件也需要;./target 和 ./target/ 效果一致
结果如下:
labex:project/ $ tree target
target
`-- dir1|-- 1.txt`-- dir2`-- 2.txt2 directories, 2 files
3.复制文件到另一台服务器
scp 源文件 目标服务器用户名@目标服务器ip:目标服务器地址
移动
1.移动当前目录以及所有内容
mv ./source ./target # source 后的 / 可加可不加,效果一样;./target/ 的效果与 ./target 一致
-
target 目录不存在时,会生成一个 target 目录,目录下存放的是源 source 目录下所有内容。
-
target 存在时,会将 source 目录及目录下的内容放到 target 目录下。
2.移动当前目录下所有内容(不包含当前目录本身)
# 需要提前创建 target 目录
mv ./source/{.,}* ./target # 和 cp 不同的是,mv 时不需要加 -r 参数去实现递归;./target/ 的效果与 ./target 一致
参考
更多命令可参考:Linux 命令大全