欢迎光临
我们一直在努力

Linux中文件复制(cp)/移动(mv)/权限管理( chmod)详解

Linux中cp(文件复制)、mv(文件移动/重命名)、chmod(权限管理)这三个核心命令今天我用新手能看懂的语言梳理,重点标注易踩坑的细节和高频用法。


1. cp 命令

简介

cp(全称 copy)是Linux中复制文件/目录的核心命令,新手最容易踩的坑是“复制目录时忘记加递归选项”——直接用cp 目录名 目标路径会报错,必须加-r/-R。它的核心作用是将文件/目录从一个位置复制到另一个位置,支持保留文件属性、交互式覆盖等。

常用选项

选项作用
-r/-R 递归复制(必加!用于复制目录及目录下所有文件/子目录)
-i 交互式复制:覆盖已有文件前会提示“是否覆盖”,避免误删
-f 强制复制:直接覆盖已有文件,不提示(慎用)
-p 保留文件原有属性(比如创建时间、权限、所有者)
-v 显示复制过程(能看到“复制了哪个文件”,新手排错很有用)

常见用法

# 1. 基础用法:复制单个文件到指定目录(最常用)
cp aa.txt /home/user/ # 把aa.txt复制到user目录

# 2. 复制文件并改名(目标目录+新文件名)
cp test.txt /home/user/documents/test_new.txt # 复制后改名为test_new.txt

# 3. 复制目录(必须加-r!)
cp -r aa /home/user/ # 把aa目录及里面所有内容复制到user目录


2. mv 命令

简介

mv(全称 move)有两个核心作用:移动文件/目录、重命名文件/目录——新手可以记:“同一目录下用mv是重命名,不同目录下用mv是移动”。和cp不同,mv移动目录不需要加-r,且移动后原文件/目录会消失(相当于“剪切+粘贴”)。

常用选项

选项作用
-i 交互式移动:覆盖已有文件前提示,避免误操作
-f 强制移动:直接覆盖,不提示(慎用)
-v 显示移动/重命名过程
-n 不覆盖已存在的文件(比-f更安全,新手优先用)

常见用法

# 1. 重命名文件(同一目录下)
mv aa.txt bb.txt # 把aa.txt改名为bb.txt

# 2. 重命名目录(同样不需要-r)
mv aa bb # 把目录aa改名为bb

# 3. 移动文件到指定目录
mv aa /home/user/ # 把aa移动到user目录(原位置消失)

# 4. 移动目录到指定位置(无需-r)
mv aa /home/user/ # 把aa目录移动到user目录

# 5. 移动并改名(一步到位)
mv aa.txt /home/user/documents/bb.txt # 移动到aa并改名为bb.txt


3. chmod 命令

简介

chmod(全称 change mode)是修改文件/目录权限的命令,Linux文件权限分三类:

  • 所有者(u,user):文件的创建者/所属用户;
  • 所属组(g,group):文件所属用户组;
  • 其他人(o,other):既不是所有者也不在所属组的用户;
    权限分三种:读(r=4)、写(w=2)、执行(x=1)。新手优先掌握数字法(简单好记)和符号法(灵活),是运维/开发改脚本执行权限、配置文件读写权限的必备技能。

常用选项

选项作用
-R 递归修改:修改目录权限时,同时改目录下所有文件/子目录的权限
-v 显示权限修改过程
-c 只显示“实际修改了权限”的文件(过滤未修改的,更简洁)

核心前置知识(必记)

1. 数字法权限规则

权限值 = 读(r=4) + 写(w=2) + 执行(x=1),比如:

  • 7 = 4® + 2(w) + 1(x) → 可读可写可执行;
  • 6 = 4® + 2(w) → 可读可写(无执行);
  • 5 = 4® + 1(x) → 可读可执行(无写);
    完整权限格式:所有者权限+所属组权限+其他人权限,比如755 = 所有者7(rwx)、组5(rx)、其他人5(rx)。
2. 符号法规则
  • 主体:u(所有者)、g(组)、o(其他人)、a(所有人,=u+g+o);
  • 操作:+(添加权限)、-(移除权限)、=(设置权限);
  • 权限:r(读)、w(写)、x(执行)。

常见用法

# ========== 数字法 ==========
# 1. 给脚本加“所有者可执行”权限(最常用:运行shell/python脚本)
chmod 755 aa.sh # 所有者:rwx(7),组/其他人:rx(5)
# 解释:脚本需要执行权限才能运行,755是最安全的脚本权限(其他人只能读/执行,不能改)

# 2. 配置文件权限(只允许所有者读写,其他人只读)
chmod 644 config.ini # 所有者:rw(6),组/其他人:r(4)

# 3. 递归修改目录权限(比如网站目录)
chmod -R 755 /var/www/html/ # 改html目录及所有子文件为755权限

# ========== 符号法(灵活) ==========
# 1. 给所有人添加执行权限
chmod a+x aa.sh # 等价于 chmod +x run_script.sh(省略a默认是所有人)

# 2. 移除其他人的写权限(安全加固)
chmod o-w config.ini # 其他人不能修改config.ini

# 3. 只给所有者设置“可读可写可执行”,组和其他人无任何权限
chmod u=rwx,g=,o= aa.txt # 等价于 chmod 700 aa.txt


总结

  • cp:复制文件/目录,核心记住-r(复制目录必加)、-i(交互式防误覆盖);
  • mv:移动/重命名,同一目录是重命名、不同目录是移动,操作目录无需-r;
  • chmod:改权限,新手先掌握数字法(755=脚本、644=配置文件),符号法灵活调整单类权限,改目录加-R递归。
  • 赞(0)
    未经允许不得转载:171主机测评 » Linux中文件复制(cp)/移动(mv)/权限管理( chmod)详解
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址