Linux 基础文件操作命令详解
目录
- Linux 基础文件操作命令详解
- 目录
- 一、课程目标
- 二、touch 命令 - 创建文件或更新时间戳
- 2.1 命令功能
- 2.2 基本语法
- 2.3 常用选项
- 2.4 实战示例
- 2.5 时间戳操作
- 三、mkdir 命令 - 创建目录
- 3.1 命令功能
- 3.2 基本语法
- 3.3 常用选项
- 3.4 实战示例
- 3.5 目录权限说明
- 四、cp 命令 - 复制文件/目录
- 4.1 命令功能
- 4.2 基本语法
- 4.3 常用选项
- 4.4 实战示例
- 4.5 高级复制技巧
- 五、mv 命令 - 移动/重命名文件
- 5.1 命令功能
- 5.2 基本语法
- 5.3 常用选项
- 5.4 实战示例
- 5.5 批量重命名技巧
- 六、rm 命令 - 删除文件/目录
- 6.1 ⚠️ 危险命令!使用要极其谨慎!
- 6.2 基本语法
- 6.3 常用选项
- 6.4 ⚠️ 危险操作示例(了解但不要轻易尝试)
- 6.5 安全删除最佳实践
- 七、综合课堂练习
- 练习1:基础文件操作(20分钟)
- 练习2:日志文件管理(15分钟)
- 练习3:安全删除练习(10分钟)
- 八、常见错误和调试技巧
- 8.1 权限问题
- 8.2 文件不存在
- 8.3 目录不存在
- 8.4 使用echo调试
- 九、安全操作规范
- 9.1 黄金法则
- 9.2 安全别名设置
一、课程目标
- 掌握Linux基础文件操作命令
- 理解命令选项的含义和用法
- 能够熟练进行文件/目录的创建、复制、移动和删除
- 培养良好的操作习惯和安全意识
二、touch 命令 - 创建文件或更新时间戳
2.1 命令功能
- 创建新的空文件
- 更新文件的访问和修改时间
2.2 基本语法
touch [选项] 文件名1 文件名2 ...2.3 常用选项
| 选项 | 说明 | 示例 |
|---|---|---|
-a |
只更改访问时间 | touch -a file.txt |
-m |
只更改修改时间 | touch -m file.txt |
-c |
不创建新文件 | touch -c nonexistent.txt |
-t |
指定时间戳 | touch -t 202312251200 file.txt |
2.4 实战示例
# 创建单个文件
touch example.txt
# 创建多个文件
touch file1.txt file2.txt file3.log
# 查看文件详细信息
ls -l file1.txt
# 更新文件时间戳(文件已存在)
touch example.txt
# 不创建文件,只更新时间戳(如果文件存在)
touch -c maybe_exists.txt2.5 时间戳操作
# 查看文件详细时间信息
stat example.txt
# 设置特定时间戳
touch -t 202312251430.00 example.txt # 2023年12月25日14:30
# 只更新访问时间
touch -a example.txt
# 只更新修改时间
touch -m example.txt三、mkdir 命令 - 创建目录
3.1 命令功能
- 创建新目录(文件夹)
- 支持一次性创建多级目录
3.2 基本语法
mkdir [选项] 目录名1 目录名2 ...3.3 常用选项
| 选项 | 说明 | 示例 |
|---|---|---|
-p |
创建多级目录 | mkdir -p a/b/c |
-v |
显示创建过程 | mkdir -v newdir |
-m |
设置目录权限 | mkdir -m 755 secure_dir |
3.4 实战示例
# 创建单个目录
mkdir my_documents
# 创建多个目录
mkdir dir1 dir2 dir3
# 创建多级目录(重要!)
mkdir -p project/src/main/java
# 显示创建过程
mkdir -v backup/photos/2023
# 创建带特定权限的目录
mkdir -m 700 private_dir # 只有所有者可读写执行
mkdir -m 755 public_dir # 所有者全权限,其他人读执行
# 查看目录结构
tree project/3.5 目录权限说明
# 常见权限设置
mkdir -m 700 personal # 完全私有:rwx------
mkdir -m 755 shared # 公开可读:rwxr-xr-x
mkdir -m 777 temp # 完全开放:rwxrwxrwx(谨慎使用)四、cp 命令 - 复制文件/目录
4.1 命令功能
- 复制文件和目录
- 支持保留文件属性和递归复制
4.2 基本语法
cp [选项] 源文件 目标文件
cp [选项] 源文件... 目标目录4.3 常用选项
| 选项 | 说明 | 示例 |
|---|---|---|
-r 或 -R |
递归复制目录 | cp -r dir1 dir2 |
-i |
交互模式(覆盖前确认) | cp -i file1 file2 |
-v |
显示复制过程 | cp -v file* backup/ |
-p |
保留文件属性 | cp -p important.conf backup/ |
-u |
只复制更新的文件 | cp -u source/* dest/ |
-l |
创建硬链接而非复制 | cp -l bigfile.txt link.txt |
4.4 实战示例
# 复制单个文件
cp file1.txt file1_backup.txt
# 复制到目录
cp file1.txt backup/
# 复制多个文件
cp file1.txt file2.txt file3.txt documents/
# 递归复制目录(重要!)
cp -r my_project project_backup
# 交互式复制(避免误覆盖)
cp -i important.txt backup/
# 详细显示复制过程
cp -rv photos/ vacation_backup/
# 保留所有属性复制
cp -p system.conf system.conf.backup
# 只复制新文件(增量备份)
cp -u daily_logs/* archive/4.5 高级复制技巧
# 使用通配符复制
cp *.txt text_files/
cp *.jpg *.png images/
# 复制时重命名
cp original.txt renamed.txt
# 创建硬链接节省空间
cp -l large_video.mp4 link_to_video.mp4
# 备份整个家目录
cp -rp ~/ /backup/home_backup/五、mv 命令 - 移动/重命名文件
5.1 命令功能
- 移动文件/目录到新位置
- 重命名文件/目录
5.2 基本语法
mv [选项] 源文件 目标文件
mv [选项] 源文件... 目标目录5.3 常用选项
| 选项 | 说明 | 示例 |
|---|---|---|
-i |
交互模式(覆盖前确认) | mv -i old new |
-v |
显示移动过程 | mv -v file* dest/ |
-b |
覆盖前创建备份 | mv -b important.txt new.txt |
-n |
不覆盖已存在文件 | mv -n new.txt existing.txt |
5.4 实战示例
# 重命名文件
mv old_name.txt new_name.txt
# 移动文件到目录
mv document.txt documents/
# 移动并重命名
mv file.txt backup/archived_file.txt
# 移动多个文件
mv pic1.jpg pic2.jpg pic3.jpg photos/
# 交互式移动(安全)
mv -i important_data.txt storage/
# 显示移动过程
mv -v *.log logs/
# 覆盖前备份
mv -b config.conf new_config.conf # 生成config.conf~备份文件
# 安全移动(不覆盖)
mv -n new_data.txt existing_data.txt5.5 批量重命名技巧
# 批量修改扩展名
mv *.jpeg *.jpg
# 批量添加前缀
for file in *.txt; do mv "$file" "backup_$file"; done
# 批量移动特定类型文件
mv *.{jpg,png,gif} images/六、rm 命令 - 删除文件/目录
6.1 ⚠️ 危险命令!使用要极其谨慎!
6.2 基本语法
rm [选项] 文件或目录...6.3 常用选项
| 选项 | 说明 | 示例 |
|---|---|---|
-r 或 -R |
递归删除目录 | rm -r old_dir |
-f |
强制删除(无确认) | rm -f temp_file |
-i |
交互模式(每个文件确认) | rm -i *.tmp |
-v |
显示删除过程 | rm -v old_files/* |
-d |
删除空目录 | rm -d empty_dir |
6.4 ⚠️ 危险操作示例(了解但不要轻易尝试)
# ❌ 极其危险的命令!绝对不要运行!
rm -rf / # 删除整个系统!
rm -rf ~/* # 删除家目录所有文件!
# ✅ 相对安全的删除方式
# 删除单个文件(确认)
rm -i important.txt
# 删除目录及其内容
rm -r old_project
# 强制删除临时文件
rm -f /tmp/cache_*
# 交互式删除多个文件
rm -i *.log
# 显示删除过程
rm -rv temp_dir/6.5 安全删除最佳实践
# 1. 先列出要删除的文件确认
ls *.tmp
rm *.tmp
# 2. 使用交互模式
rm -i important_*
# 3. 先移动到临时目录再删除
mkdir to_delete
mv old_files/* to_delete/
# 确认无误后再删除
rm -r to_delete
# 4. 使用trash-cli工具(如果安装)
trash-put file.txt # 移动到回收站七、综合课堂练习
练习1:基础文件操作(20分钟)
任务:创建个人项目目录结构
# 1. 创建以下目录结构
my_project/
├── src/
│ ├── main/
│ │ └── java/
│ └── test/
│ └── java/
├── docs/
├── backup/
└── logs/
# 2. 在src/main/java/中创建3个.java文件
# 3. 在docs/中创建readme.txt和help.txt
# 4. 将整个项目备份到backup/目录
# 5. 将readme.txt重命名为README.md参考答案:
# 1. 创建目录结构
mkdir -p my_project/src/{main/java,test/java} my_project/docs my_project/backup my_project/logs
# 2. 创建Java文件
touch my_project/src/main/java/{Main.java,Utils.java,Config.java}
# 3. 创建文档文件
touch my_project/docs/{readme.txt,help.txt}
# 4. 备份项目
cp -r my_project/src my_project/backup/
# 5. 重命名文件
mv my_project/docs/readme.txt my_project/docs/README.md
# 验证结构
tree my_project/练习2:日志文件管理(15分钟)
任务:模拟日志文件管理
# 1. 创建logs目录和3个日志文件
# 2. 更新最新日志文件的时间戳
# 3. 将3天前的日志移动到archive目录
# 4. 删除7天前的日志备份
# 提示:使用touch -t设置特定时间戳参考答案:
# 1. 创建日志文件
mkdir logs
touch logs/app_{20231222,20231223,20231224}.log
# 2. 更新最新日志时间戳
touch logs/app_20231224.log
# 3. 创建archive并移动旧日志
mkdir archive
mv logs/app_20231222.log archive/
# 4. 创建并删除7天前日志备份
touch logs/app_20231217.log.bak
rm logs/app_20231217.log.bak
# 查看结果
ls -la logs/ archive/练习3:安全删除练习(10分钟)
任务:练习安全删除操作
# 1. 创建测试文件和目录
# 2. 使用安全方式删除
# 3. 验证删除结果
# 要求:使用交互模式,显示操作过程参考答案:
# 1. 创建测试数据
mkdir test_safe_delete
touch test_safe_delete/{file1.txt,file2.txt,file3.txt}
mkdir test_safe_delete/subdir
touch test_safe_delete/subdir/{a.log,b.log}
# 2. 安全删除练习
# 交互式删除文件
rm -i test_safe_delete/*.txt
# 显示删除过程
rm -rv test_safe_delete/subdir/
# 最后删除目录(确认空目录)
rm -d test_safe_delete/
# 3. 验证
ls -la | grep test_safe_delete八、常见错误和调试技巧
8.1 权限问题
# 错误:Permission denied
touch /root/system_file.txt # 需要sudo权限
# 解决方案
sudo touch /root/system_file.txt
# 或者在用户有权限的目录操作
touch ~/my_file.txt8.2 文件不存在
# 错误:No such file or directory
cp nonexistent.txt backup/
# 解决方案:先检查文件是否存在
ls nonexistent.txt
# 或者使用通配符
cp *.txt backup/ 2>/dev/null || echo "没有txt文件可复制"8.3 目录不存在
# 错误:No such file or directory
cp file.txt nonexistent_dir/
# 解决方案:先创建目录
mkdir -p nonexistent_dir
cp file.txt nonexistent_dir/8.4 使用echo调试
# 在危险操作前先echo确认
echo "将要删除: $(ls *.tmp)"
# 确认输出无误后再执行
rm *.tmp九、安全操作规范
9.1 黄金法则
- 备份重要数据后再进行批量操作
- 先列出再操作:
ls→rm - 使用交互模式:
-i选项 - 避免使用
rm -rf /path(永远指定具体路径)
9.2 安全别名设置
# 在~/.bashrc中添加安全别名
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# 重新加载配置
source ~/.bashrc通过本课程的学习,你应该能够熟练进行Linux基础文件操作,并养成良好的安全习惯。记住:谨慎操作,勤备份!
作者:严锋 创建时间:2025-11-01 10:55
最后编辑:严锋 更新时间:2025-11-04 14:01
最后编辑:严锋 更新时间:2025-11-04 14:01