4、ubuntu系统 | 文本和目录操作函数

1、目录操作函数

ls(列出目录内容)

  • 用途:列出指定目录中的文件和子目录。
  • 语法ls [选项] [路径]
  • 常用选项
    • -l:以长格式显示文件详细信息(权限、所有者、大小、时间等)。
    • -a:显示隐藏文件(以.开头的文件)。
    • -R:递归列出子目录内容。
# 列出当前目录下的所有文件和子目录
ls# 列出当前目录的详细信息(包含隐藏文件)
ls -la   # 可简写成ll# 递归列出当前目录及其子目录的内容
ls -R

cd(切换目录)

  • 用途:更改当前工作目录。
  • 语法cd [路径]
  • 常用路径
    • ~:用户主目录(如 /home/username)。
    • /:根目录。
    • ..:上一级目录。
# 切换到用户主目录
cd ~# 切换到根目录
cd /# 切换到上一级目录
cd ..

mkdir(创建目录)

  • 用途:创建新目录。
  • 语法mkdir [选项] 目录名
  • 常用选项
    • -p:递归创建目录(自动创建父目录)。-p,--parents的缩写,表示自动创建路径中的父目录(如果它们不存在)
# 创建单个目录
mkdir new_folder# 递归创建多级目录(如 a/b/c)
mkdir -p a/b/c

rmdir(删除空目录)

  • 用途:删除空目录。
  • 语法rmdir [目录名]
  • 注意:目录必须为空,否则会报错。
# 删除空目录 example_dir
rmdir example_dir

rm(删除文件或目录)

  • 用途:删除文件或目录。
  • 语法rm [选项] 文件或目录
  • 常用选项
    • -r:递归删除目录及其内容,recursive。
    • -f:强制删除(不提示确认),force。
# 删除文件 file.txt
rm file.txt# 递归删除目录及其内容(强制删除)
rm -rf directory_name

cp(复制文件或目录)

  • 用途:复制文件或目录。
  • 语法cp [选项] 源路径 目标路径
  • 常用选项
    • -r:递归复制目录。
    • -i:交互式复制(覆盖前提示),interactive。
# 复制文件
cp source.txt destination.txt# 递归复制目录
cp -r source_dir/ destination_dir/

mv(移动或重命名文件/目录)

  • 用途:移动文件或目录,或重命名文件/目录。
  • 语法:mv  [选项]  源文件/目录  目标路径/新名称
  • 常用选项
    • -v:显示详细操作信息
    • -i:交互式操作(防止覆盖)
    • -n:禁止覆盖已存在的文件
    • -u:当源文件比目标文件新,或者目标文件不存在时,才执行移动操作
    • -b:覆盖前备份原文件

# 1. 创建测试文件和目录
mkdir -p test_dir1 test_dir2
touch test_dir1/file1.txt test_dir1/file2.txt test_dir1/file3.txt
echo "初始文件结构:"
ls -R test_dir1
# 输出:
# test_dir1:
# file1.txt  file2.txt  file3.txt# ----------------------------
# 2. 移动单个文件
# 将 file1.txt 移动到 test_dir2
mv test_dir1/file1.txt test_dir2/
echo "移动单个文件后:"
ls -R test_dir2
# 输出:
# test_dir2:
# file1.txt# ----------------------------
# 3. 重命名文件
# 将 file2.txt 重命名为 new_file.txt
mv test_dir1/file2.txt test_dir1/new_file.txt
echo "重命名文件后:"
ls test_dir1
# 输出:
# file3.txt  new_file.txt# ----------------------------
# 4. 移动多个文件
# 将多个文件移动到目标目录
mv test_dir1/file3.txt test_dir1/new_file.txt test_dir2/
echo "移动多个文件后:"
ls -R test_dir2
# 输出:
# test_dir2:
# file1.txt  file3.txt  new_file.txt# ----------------------------
# 5. 使用 -i 防止覆盖(交互式)
# 如果目标文件存在,会提示是否覆盖
# 示例:尝试覆盖 test_dir2 中的 file1.txt
mv -i test_dir1/file1.txt test_dir2/file1.txt
# 输出示例:
# mv: overwrite 'test_dir2/file1.txt'? y# ----------------------------
# 6. 使用 -v 显示详细操作
# 显示移动过程的详细信息
mv -v test_dir1/file1.txt test_dir2/
# 输出示例:
# 'test_dir1/file1.txt' -> 'test_dir2/file1.txt'# ----------------------------
# 7. 使用 -n 禁止覆盖
# 如果目标文件存在,跳过操作
mv -n test_dir1/file1.txt test_dir2/
# 输出:无(因为目标文件已存在)# ----------------------------
# 8. 使用通配符批量移动
# 移动所有 .txt 文件
touch test_dir1/a.txt test_dir1/b.txt
mv test_dir1/*.txt test_dir2/
echo "通配符批量移动后:"
ls -R test_dir2
# 输出示例:
# test_dir2:
# a.txt  b.txt  file1.txt  file3.txt  new_file.txt# ----------------------------
# 9. 使用 -b 覆盖前备份
# 覆盖前备份原文件(备份文件名加 ~)
mv -b test_dir2/file1.txt test_dir2/backup.txt
echo "覆盖前备份示例:"
ls -R test_dir2
# 输出示例:
# test_dir2:
# backup.txt  file1.txt~  a.txt  b.txt  file3.txt  new_file.txt# ----------------------------
# 10. 结合 find 移动特定文件
# 查找并移动所有 .log 文件
touch test_dir1/sample.log
find test_dir1 -name "*.log" -exec mv {} test_dir2/ \;
echo "find + mv 示例:"
ls -R test_dir2
# 输出示例:
# test_dir2:
# sample.log  backup.txt  file1.txt~  a.txt  b.txt  file3.txt  new_file.txt# ----------------------------
# 11. 移动目录
# 移动整个目录及其内容
mv test_dir1 test_dir2/
echo "移动目录后:"
ls -R test_dir2
# 输出示例:
# test_dir2:
# sample.log  backup.txt  file1.txt~  a.txt  b.txt  file3.txt  new_file.txt  test_dir1# test_dir2/test_dir1:
# (空目录,因为所有文件已被移动)

find(查找文件或目录)

  • 用途:在目录树中查找文件或目录。
  • 语法find [路径] [表达式]
  • 常用选项
    • -name:按名称查找。
    • -type:按类型查找(f表示文件,d表示目录࿰

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/85576.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++--范围for循环详解

范围 for 循环是 C11 引入的语法特性,用于简化遍历容器或数组元素的过程。它比传统 for 循环更简洁安全,特别适合初学者。以下是详细讲解: 基本语法 for (元素类型 变量名 : 容器/数组) {// 循环体(使用变量名访问当前元素&#…

RDMA简介1之RDMA开发必要性

为了满足大批量数据的采集、存储与传输需求,越来越多的数据密集型应用如机器学习、雷达、金融风控、航空航天等选择使用现场可编程逻辑门阵列作为数据采集前端硬件来实现高性能的数据采集系统。FPGA凭借其高灵活性、高并行能力及可高度定制化的特点,能够…

xmake的简易学习

文章目录 1. xmake是什么2. 一个可执行程序3. 一个库文件4. 遍历文件用法5. 第三方库3.1 系统安装库3.2 独立库 6. 后续 由于前一篇博客的最后说要做一些rknn的优化,其实这个工作很早就完成了,但是我是使用 xmake这个来做我的工程的构建的,不…

【ArcGIS微课1000例】0147:Geographic Imager6.2下载安装教程

文章目录 一、软件功能二、下载地址三、安装教程Geographic Imager地图工具使Adobe Photoshop空间图像可以快速高效地工作。它增加了导入,编辑,操作和导出地理空间图像的工具,例如航空和卫星图像。Geographic Imager Mac功能非常强大,拥有栅格数据输出、投影信息修改、基于…

【 java 集合知识 第一篇 】

1.概念 1.1.集合与数组的区别 集合:长度不固定,动态的根据数据添加删除改变长度,并且只能存入引用类型,读取采用迭代器或其他方法 数组:长度固定,不可改变,既可以存入基本类型也可以存入引用…

嵌入式开发学习日志(linux系统编程--系统编程之 进程间通信IPC)Day32

一、引言 空间独立,需要一些操作; 分为三大类: 1、古老的通信方式 无名管道 有名管道 信号 2、IPC对象通信 system v BSD suse fedora kernel.org 消息队列(用的相对少,这里不讨论) …

metersphere不同域名的参数在链路测试中如何传递?

域名1:https://api.domain1.com 域名2:https://api.domain2.com 域名1的返回参数stteid会作为域名2的入参 步骤: 1)先在metersphere—接口测试—接口定义中创建域名1和域名2的接口 2)接口创建好后,在接口测…

使用Process Explorer、System Informer(Process Hacker)和Windbg工具排查软件高CPU占用问题

目录 1、问题现象 2、使用Process Explorer和System Informer(该工具原先叫Process Hacker)查看占用CPU高的线程 3、使用System Informer工具时发现了一个关键细节 4、将Windbg附加到软件进程上,根据System Informer中显示的线程id到Wind…

Linux(线程概念)

目录 一 虚拟地址到物理地址的转换 1. 操作系统如何管理物理内存: 2. 下面来谈谈虚拟地址如何转换到物理地址: 3. 补充字段: 二 Linux中的线程 1. 先来说说进程: 2. 线程: 3. 线程相比较于进程的优缺点&#x…

阿里云为何,一个邮箱绑定了两个账号

阿里云“幽灵账号”之谜:同一个邮箱注销后仍有两个账号?深度揭秘成因与终极解决方案! 你是否曾在阿里云上使用同一个邮箱注册过多个账号,明明已经**“彻底”注销了其中一个**,却惊愕地发现系统里依然**“幽灵般”挂着…

动态规划-数位DP

今天开始做关于数位DP的问题,首先对于数位DP来说,这类问题难度较大,比较难理解,所以博主也会尽量讲的更加详细一些,来帮助大家更好地理解这里的相关知识。 前置知识: 1.首先对于数位DP来说,主…

总览四级考试

别被“四级”这个庞然大物吓到!我们一起拆解它:​​ 📍 ​​核心认知:四级是一场策略性考试!​​ 它不考智商,考的是​​基础英语能力 考试技巧 时间管理​​。基础可以通过努力补,技巧可以…

BSRR对比BRR对比ODR

✅ 三种操作方式的本质区别 寄存器功能原子操作特点BSRR同时支持置位(1)和复位(0)✔️ 是单指令完成任意位操作,无竞争风险ODR直接读写输出状态❌ 否需"读-改-写",多线程/中断中需关中断保护BRR只能复位(0)✔️ 是仅清零功能,无置…

职坐标精选嵌入式AI物联网开源项目

随着嵌入式、AI与物联网技术的深度融合,开源生态已成为开发者构建智能硬件解决方案的核心驱动力。本文将从嵌入式实时操作系统、多模态AI数据集及物联网接入平台三大维度切入,系统性梳理技术选型要点与实践路径。在嵌入式领域,重点解析低功耗…

Ubuntu系统 | 本地部署ollama+deepseek

1、Ollama介绍 Ollama是由Llama开发团队推出的开源项目,旨在为用户提供高效、灵活的本地化大型语言模型(LLM)运行环境。作为Llama系列模型的重要配套工具,Ollama解决了传统云服务对计算资源和网络连接的依赖问题,让用户能够在个人电脑或私有服务器上部署和运行如Llama 3等…

【数据库】关系数据库标准语言-SQL(金仓)下

4、数据查询 语法&#xff1a; SELECT [ALL | DISTINCT] <目标列表达式> [,<目标列表达式>] … FROM <表名或视图名>[, <表名或视图名> ] … [ WHERE <条件表达式> ] [ GROUP BY <列名1> [ HAVING <条件表达式> ] ] [ ORDER BY <…

基于YOLO-NAS-Pose的无人机象群姿态估计:群体行为分析的突破

【导读】 应对气候变化对非洲象的生存威胁&#xff0c;本研究创新采用无人机航拍结合AI姿态分析技术&#xff0c;突破传统观测局限。团队在肯尼亚桑布鲁保护区对比测试DeepLabCut与YOLO-NAS-Pose两种模型&#xff0c;首次将后者引入野生动物研究。通过检测象群头部、脊柱等关键…

8.RV1126-OPENCV 视频中添加LOGO

一.视频中添加 LOGO 图像大体流程 首先初始化VI,VENC模块并使能&#xff0c;然后创建两个线程&#xff1a;1.把LOGO灰度化&#xff0c;然后获取VI原始数据&#xff0c;其次把VI数据Mat化并创建一个感兴趣区域&#xff0c;最后把LOGO放感兴趣区域里并把数据发送给VENC。2.专门获…

AI+3D 视觉重塑塑料袋拆垛新范式:迁移科技解锁工业自动化新高度

在工业自动化浪潮席卷全球的当下&#xff0c;仓储物流环节的效率与精准度成为企业降本增效的关键战场。其中&#xff0c;塑料袋拆垛作为高频、高重复性的作业场景&#xff0c;传统人工或机械臂操作面临着诸多挑战。迁移科技&#xff0c;作为行业领先的 3D 工业相机和 3D 视觉系…

MATLAB实战:视觉伺服控制实现方案

以下是一个基于MATLAB的视觉伺服控制项目实现方案&#xff0c;结合实时图像处理、目标跟踪和控制系统设计。我们将使用模拟环境进行演示&#xff0c;但代码结构可直接应用于真实硬件。 系统架构 图像采集 → 目标检测 → 误差计算 → PID控制器 → 执行器控制 完整代码实现 …