Linux操作文件与目录——cp、mv、mkdir、rm和ln命令

2023-05-16

1.通配符

表1 常用的通配符以及它们所选择的对象

通配符匹配项
*匹配任意多个字符(包括0个和1个)
匹配任意单个字符(不包括0个)
[characters]匹配任意一个属于字符集中的字符
[!characters]匹配任意一个不属于字符集中的字符
[[:class:]]匹配任意一个属于指定字符类中的字符

表2 最常见的字符类

字符类匹配项
[:alnum:]匹配任意一个字母或数字
[:alpha:]匹配任意一个字母
[:digit]匹配任意一个数字
[:lower:]匹配任意一个小写字母
[:upper:]匹配任意一个大写字母

表3 通配符示例

形式匹配项
*所有文件
g*以g开头的任一文件
b*.txt以b开头,中间有任意多个字符,并以.txt结尾的任一文件
Data???以Data开头,后面跟3个字符的任一文件
[abc]*以a,b,c任一一个开头的任一文件
BACKUP.[0-9][0-9][0-9]以BACKUP.开头,后面跟随3个数字的任一文件
[[:upper:]]*以大写字母开头的任一文件
[![:digit:]]*不以数字开头的任一文件
*[[:lower]123]以小写字母或数字1、2、3中任一结尾的任一文件

2. mkdir——创建目录

语法 mkdir directory …
可同时创建多个目录,例如
mkdir dir1 dir2 dir3

3.cp——复制文件和目录

语法
复制单个文件: cp item directory
复制多个文件: cp item… directory

表4 cp命令选项

选项含义
-a,–archive复制文件和目录及其属性包括所有权和权限。通常来说,复制文件具有用户所操作文件的默认属性
-i ,–interactive在覆盖一个已存在的文件前,提醒用户进行确认。如果没有指定该选项,cp会默认覆盖文件
-r, --recursive递归地复制目录及其内容。复制目录时需要该选项
-u,–update当将文件从一个目录复制到另外一个目录时,只会复制哪些目标目录中不存在的文件或是目标目录相应的更新文件
-v, --verbose复制文件时,显示信息性消息(informative message)

表5 cp命令示例

命令结果
cp file1 file2将file1复制到file2,如果file2存在,则会被file1的内容覆盖,如果file2不存在,则创建file2
cp -i file1 file2同上,区别在于file2存在时,覆盖之前会通知用户确认
cp file1 file2 dir1将file1和file2复制到目录dir1里,dir1必须已经存在
cp dir1/* dir2通过使用通配符,将dir1中的所有文件复制的dir2中,dir2必须已经存在
cp -r dir1 dir2将dir1目录(及其内容)复制到dir2目录中,如果dir2不存在,创建dir2,且包含与dir1目录相同的内容.

4. mv——移除和重命名文件

语法与cp类似
mv item1 item2,将文件(或目录)item1移动(或重命名)为item2
mv item… directory, 将一个或多个条目从一个目录移动到另一个目录下.

表6 mv命令选项

选项含义
-i ,–interactive在覆盖一个已存在的文件前,提醒用户进行确认。如果没有指定该选项,cp会默认覆盖文件
-u,–update当将文件从一个目录移动到另外一个目录时,只会移动哪些目标目录中不存在的文件或是目标目录相应的更新文件
-v, --verbose移动文件时,显示信息性消息(informative message)

表7 mv命令示例

命令结果
mv file1 file2将file1移动到file2,如果file2存在,则会被file1的内容覆盖,如果file2不存在,则创建file2,无论哪种情况,file1不再存在
mv -i file1 file2同上,区别在于file2存在时,覆盖之前会通知用户确认
mv file1 file2 dir1将file1和file2移动到目录dir1里,dir1必须已经存在
mv dir1 dir2将dir1(和其内容)移动到dir2中,如果dir2不存在,创建目录dir2,将dir1的内容移动到dir2下,同时删除目录dir1

5.rm——删除文件和目录

语法为 rm item…
表8 rm选项

选项含义
-i, --interative删除一个已存在的文件前,提示用户确认。如果没有指定这个选项,rm命令会默认删除文件
-r, --recursive递归地删除目录。要删除一个目录,则必须指定该选项
-f,–force忽略不存在的文件并无需提示确认,该选项会覆盖–interative选项
-v,–verbose删除文件时显示信息性消息

表9 rm实例
命令 | 结果
rm file1 | 在不提示用户的情况下,删除file1
rm -i file1 | 删除file1前,提示用户确认
rm -r file1 dir1 | 删除file1、dir1以及它们的内容
rm -rf file1 dir1 | 同上,当file1或dir1不存在时,rm仍会继续执行,且不提示用户

6. ln——创建链接

语法:
ln file link,用来创建硬链接
ln -s item link, 用来创建软链接

6.1 硬链接

当创建一个硬链接时,也为这个文件创建了一个额外的目录条目,硬链接有两条重要的局限性:

  • 硬链接不能引用自身文件系统之外的文件。也就是说,链接不能引用与该链接不在同一磁盘分区的文件。
  • 硬链接无法引用目录。
ln fun fun-hard
ln fun dir1/fun-hard
ln fun dir2/fun-hard
ls -li

可通过索引字节号,即第一个字段,来看到fun和fun-hard共享同一个索引节点号。

6.2 符号链接

符号链接克服了硬链接的各种局限,与windows系统下的快捷方式很像。

ln -s fun fun-sym
ln -s ../fun dir1/fun-sym
ln -s ../fun dir2/fun-sym
ls -l dir1

输出首字段第1个字段的首字符“l”来确认的.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux操作文件与目录——cp、mv、mkdir、rm和ln命令 的相关文章

随机推荐

  • 设备管理信息系统

    设备管理系统 设备管理系统 xff08 Equipment Management System xff09 是将信息化了设备技术信息与现代化管理相结合 xff0c 是实现研究级管理信息化的先导 设备管理软件是设备管理模式与计算机技术结合的产
  • Pytorch源码学习之七:torchvision.models.googlenet

    0 基本知识 torchvision models googlenet源码地址 GoogLeNet论文地址 Inception模块 注意 xff0c 代码中第三个模块采取的3x3卷积而非5x5卷积 xff0c 不知为何 GoogLeNet网
  • TensorRT学习常用网址汇总(持续更新)

    一 官方网址 网址名称简介tensorrt support matrixTensorRT支持的硬件和应用详情 TensorRT中文教程中文教程 xff0c 部分翻译TensorRT官方中文文档官方中文文档 xff0c 注意版本号NVIDIA
  • JetsonTX2 之刷机 ——Jetpack 4.3

    2020年再次使用Nvidia Jetson tx2 xff0c Jetpack已经发行了4 4 xff0c TX2默认的系统也升级到了ubuntu 18 04 xff0c 刷机方式也发生了变化 这里记录我的刷机过程 xff0c 亲测有效
  • TX2(ubuntu 18.04)更换清华镜像源

    注意 xff0c 该版本的TX2有两个特点 xff1a Arm架构和ubuntu18 04 一 备份 sudo cp etc apt sources list etc apt sources list bak 先备份原文件sources l
  • ubuntu更换镜像源——全面讲解

    1 更换镜像源方法 我们都知道 xff0c 以清华源为例 xff0c ubuntu更换镜像分为以下几个步骤 xff1a Step1 备份原来的源 Step2 更换清华源 Step3 更新 例如 TX2 ubuntu 18 04 更换清华镜像
  • Jetson TX2刷机后查看CUDA和CUDNN版本——以JetPack4.3为例

    一 查看CUDA版本 nvcc V 输出为 xff1a 即CUDA版本为10 0 二 查看CUDNN版本 cat usr include cudnn h grep CUDNN MAJOR A 2 输出为 xff1a 即版本为7 6 3
  • TX2查看cpu/gpu使用情况方法大全

    一 方法1 tegrastats Jetpack4 3比起之前的3 x版本 xff0c tegrastats文件发生了变化 sudo cp usr bin tegrastats tegrastats sudo tegrastats 二 方法
  • Jetson TX2上升级cmake方法

    我的应用场景要编译TensorRT的sampleuffMaskRCNN xff0c 需要最低cmake版本为3 13 而Jetpack 4 3刷机后自带的为3 12 使用以下两条命令都是失败的 sudo pip3 install cmake
  • Linux之make知识点

    0 GNU Operating System 1 Linux之make的用法讲解
  • TX2 安装cv2需要的依赖——JetPack4.3

    JetPack 4 3自带了opencv 4 1 1 而当使用python3导入cv2时 xff0c 发现仍缺少依赖 xff0c 首先使用清华镜像源因此使用以下代码进行安装 xff1a sudo apt get update sudo ap
  • ipconfig命令详细图解

    一 操作实例 不带参数 xff1b all参数 xff1b release和 renew displaydns参数就是显示本地DNS内容 xff1b 相当多 xff1b 看下 xff0c 上了会网 xff0c 缓存的DNS很多 xff1b
  • 《自己动手写Docker》书摘之二---Linux Cgroups介绍

    Linux Cgroups介绍 上面是构建Linux容器的namespace技术 xff0c 它帮进程隔离出自己单独的空间 xff0c 但Docker又是怎么限制每个空间的大小 xff0c 保证他们不会互相争抢呢 xff1f 那么就要用到L
  • TX2安装tensorflow-gpu(亲测有效)

    安装好JetPack 4 3之后 xff0c 再也不需要从源码对tensorflow进行编译安装 xff0c 可以通过以下两步安装 xff1a Step1 安装h5py sudo apt get install python3 h5py 主
  • TX2编译TensorRT的C++ samples ——Jetpack4.3

    不得不说 xff0c JetPack 4 3实在是太方便了 xff01 1 Where is TensorRT 1 1 C 43 43 版本 与手动安装tensorRT不同 xff0c JetPack自动将TensorRT c 43 43
  • TX2编译安装curl,使其可以解析https

    不小心误删了刷机后自带的Curl 导致安装的curl不能解析https curl安装 以下方式可行 xff1a sudo apt purge curl git clone https github com curl curl git cd
  • 从网站上下载数据集并解压——以coco数据集为例

    最近在阅读源码时发现了一段值得学习的源码 xff0c 实现从网址下载coco数据集到本地 xff0c 并解压 xff0c 在这里做下记录 xff0c 以备借鉴使用 span class token comment 以下载annotation
  • Linux系统ls命令详解

    1 ls命令 选项长选项含义 a all列出所有文件 xff0c 包括以点号开头的文件 xff0c 这些文件通常是不列出来的 xff08 比如隐藏的文件 xff09 d directory如果指定了一个目录 xff0c ls会列出目录中内容
  • Linux系统中目录的内容详解---bin、dev、etc、home、lib、opt、usr、var

    目录内容 根目录 xff0c 一切从这里开始 bin包含系统启动和运行所必须的二进制文件 程序 boot包含Linux内核 最初的RAM磁盘映像 xff0c 以及启动加载程序 常用的文件 boot grub grub conf或menu l
  • Linux操作文件与目录——cp、mv、mkdir、rm和ln命令

    1 通配符 表1 常用的通配符以及它们所选择的对象 通配符匹配项 匹配任意多个字符 包括0个和1个 xff1f 匹配任意单个字符 不包括0个 characters 匹配任意一个属于字符集中的字符 characters 匹配任意一个不属于字符