3.4 目录和文件共用命令

3.4.1 rm命令

●命令名称:rm。

●英文原意:remove files or directories。

●所在路径:/usr/bin/rm。

●执行权限:所有用户。

●功能描述:删除文件或目录。

(1)命令格式

  1. [root@localhost ~]# rm [选项] 文件或目录
  2. 选项:
  3. -f: 强制删除(force
  4. -i: 交互删除,在删除之前会询问用户
  5. -r: 递归删除,可以删除目录(recursive
  6. -d: 删除空目录

(2)常见用法

①不带选项,默认执行的是“rm -i文件名”,在删除一个文件之前会先询问是否删除。例如:

  1. [root@localhost ~]# touch test_file
  2. [root@localhost ~]# rm test_file
  3. rm: remove regular empty file test_file’? y
  4. [root@localhost ~]#

②递归删除目录。例如:

  1. [root@localhost ~]# mkdir -p Marvel/Avengers/Heroes
  2. [root@localhost ~]# rm Marvel/
  3. rm: cannot remove Marvel/’: Is a directory
  4. [root@localhost ~]# rm -r Marvel/
  5. rm: descend into directory Marvel/’? y
  6. rm: descend into directory Marvel/Avengers’? y
  7. rm: remove directory Marvel/Avengers/Heroes’? y
  8. rm: remove directory Marvel/Avengers’? y
  9. rm: remove directory Marvel/’? y
  10. [root@localhost ~]#

会分别询问是否进入子目录、是否删除子目录。

③使用强制删除。例如:

  1. [root@localhost ~]# mkdir -p Marvel/Avengers/Heroes
  2. [root@localhost ~]# rm -rf Marvel/
  3. [root@localhost ~]#

注意:

●数据强制删除之后无法恢复,除非依赖第三方的数据恢复工具,如extundelete等。但很难恢复完整的数据,一般能恢复70%~80%就很难得了。所以,与其把宝压在数据恢复上,不如养成良好的操作习惯。

●虽然“-rf”选项是用来删除目录的,但是删除文件也不会报错。所以,为了使用方便,一般不论是删除文件还是删除目录,都会直接使用“-rf”选项。

3.4.2 cp命令

●命令名称:cp。

●英文原意:copy files and directories。

●所在路径:/usr/bin/cp。

●执行权限:所有用户。

●功能描述:复制文件和目录。

(1)命令格式

  1. [root@localhost ~]# cp [选项] 源文件 目标文件
  2. 选项:
  3. -a: 相当于-dpr选项的集合
  4. -d: 如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接
  5. -i: 询问,如果目标文件已经存在,则会询问是否覆盖
  6. -l: 把目标文件建立为源文件的硬链接文件,而不是复制源文件
  7. -s: 把目标文件建立为源文件的软链接文件,而不是复制源文件
  8. -p: 复制后,目标文件保留源文件的属性(包括所有者、所属组、权限和时间)
  9. -r: 递归复制,用于复制目录

(2)常见用法

①复制文件。例如:

  1. [root@localhost ~]# touch iron_man
  2. [root@localhost ~]# mkdir -p /Marvel/Avengers
  3. [root@localhost ~]# cp iron_man Marvel/Avengers/
  4. [root@localhost ~]#

②复制的同时修改文件名。例如:

  1. [root@localhost ~]# cp iron_man Marvel/Avengers/doctor_strange
  2. [root@localhost ~]#

③复制目录。例如:

  1. [root@localhost ~]# mkdir Disney
  2. [root@localhost ~]# cp -r Marvel/ Disney/
  3. [root@localhost ~]#

④复制软连接属性。例如:

  1. [root@localhost ~]# ln -s Marvel/Avengers/iron_man iron_man_sln
  2. [root@localhost ~]# ll iron_man_sln
  3. lrwxrwxrwx. 1 root root 24 Jan 7 06:40 iron_man_sln -> Marvel/Avengers/iron_man
  4. # 源文件本身就是一个软链接文件
  5. [root@localhost ~]# cp iron_man_sln iron_man_t1
  6. [root@localhost ~]# cp -d iron_man_sln iron_man_t2
  7. [root@localhost ~]# ll iron_man_t1 iron_man_t2
  8. -rw-r--r--. 1 root root 0 Jan 7 06:41 iron_man_t1
  9. lrwxrwxrwx. 1 root root 24 Jan 7 06:42 iron_man_t2 -> Marvel/Avengers/iron_man

不加“-d”选项,实际复制的是软链接的源文件,而不是软链接文件。

如果加入了“-d”选项,则会复制软链接文件。

⑤保留源文件属性复制

在执行复制命令后,目标文件的时间会变成复制命令的执行时间,而不是源文件的时间。而当我们在执行数据备份、日志备份的时候,这些文件的时间可能是一个重要的参数,这就需要执行“-p”选项了。这个选项会保留源文件的属性,包括所有者、所属组和时间。例如:

  1. [root@localhost ~]# cp -p /var/lib/mlocate/mlocate.db LaytonWang/mlocate_cp.db
  2. [root@localhost ~]# ll /var/lib/mlocate/mlocate.db LaytonWang/mlocate_cp.db
  3. -rw-r-----. 1 root slocate 2989201 Jan 6 09:06 LaytonWang/mlocate_cp.db
  4. -rw-r-----. 1 root slocate 2989201 Jan 6 09:06 /var/lib/mlocate/mlocate.db

目标文件和源文件的所有属性都一致,包括时间。

“-a”选项相当于“-dpr”选项,当我们使用“-a”选项时,目标文件和源文件的所有属性都一致,包括源文件的所有者、所属组、时间和软链接属性。使用“-a”选项来取代“-dpr”选项更加方便。

⑥“-l”和“-s”选项

使用“-l”选项,目标文件会被建立为源文件的硬链接;而使用“-s”选项,则目标文件会被建立为源文件的软链接。这两个选项和“-d”选项是不同的,“-d”选项要求源文件必须是软链接,目标文件才会复制为软链接;而“-l”和“-s”选项的源文件只需是普通文件,目标文件就可以直接复制为硬链接和软链接。例如:

  1. [root@localhost ~]# cp -l Marvel/Avengers/iron_man iron_man_h
  2. [root@localhost ~]# cp -s Marvel/Avengers/iron_man iron_man_s
  3. #使用“-l”和“-s”选项复制
  4. [root@localhost ~]# ll -i iron_man_h iron_man_s
  5. 77542 -rw-r--r--. 2 root root 0 Jan 7 06:38 iron_man_h
  6. 16797766 lrwxrwxrwx. 1 root root 24 Jan 7 07:07 iron_man_s -> Marvel/Avengers/iron_man

3.4.3 mv命令

●命令名称:mv。

●英文原意:move (rename) files。

●所在路径:/usr/bin/mv。

●执行权限:所有用户。

●功能描述:移动文件或改名。

(1)命令格式

  1. [root@localhost ~]# mv [选项] 源文件 目标文件
  2. 选项:
  3. -f: 强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖
  4. -i: 交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项)
  5. -n: 如果目标文件已经存在,则不会覆盖移动,而且不询问用户
  6. -v: 显示详细信息

(2)常见用法

①移动文件或目录

  1. [root@localhost ~]# mv iron_man_sln LaytonWang/
  2. [root@localhost ~]# mkdir movie
  3. [root@localhost ~]# mv Disney/ LaytonWang/

移动之后,源文件或目录会被删除,类似剪切。和rm、cp不同的是,mv移动目录不需要加入“-r”选项。

②强制移动

如果目标目录下已经存在同名文件,则会提示是否覆盖,需要手工确认。如果移动的同名文件较多,则需要一个一个文件进行确认,很不方便。如果我们确认需要覆盖已经存在的同名文件,则可以使用“-f”选项进行强制移动。例如:

  1. [root@localhost ~]# touch iron_man
  2. [root@localhost ~]# mv iron_man Marvel/Avengers/
  3. mv: overwrite Marvel/Avengers/iron_man’? y
  4. # 目标位置已经存在同名的文件,会提示是否覆盖,因为mv命令默认执行的也是“mv -i”。
  5. [root@localhost ~]# touch iron_man
  6. [root@localhost ~]# mv -f iron_man Marvel/Avengers/
  7. [root@localhost ~]#

③不覆盖移动

如果需要移动几百个同名文件,但是不想覆盖,就可以使用“-n”选项。例如:

  1. [root@localhost ~]# touch iron_man doctor_strange captain
  2. [root@localhost ~]# ls Marvel/Avengers/
  3. doctor_strange iron_man
  4. # 在Marvel/Avengers/目录下已经存在doctor_strange、iron_man文件。
  5. [root@localhost ~]# mv -vn iron_man doctor_strange captain Marvel/Avengers/
  6. captain -> Marvel/Avengers/captain

使用了“-n”选项,则可以看到只移动了captain,而同名的doctor_strange、iron_man并没有移动(“-v”选项用于显示移动过程)。

④改名

如果源文件和目标文件在同一个目录中,那就是改名。例如:

  1. [root@localhost ~]# touch captain
  2. [root@localhost ~]# mv captain captain2
  3. # 把captain改名为captain2

小结:

“rm”用于删除文件或目录,常用“-rf”选项进行强制删除或递归删除目录;“cp”用于复制文件或目录,常用“-a”(相当于‘-dpr’)选项复制软连接、保留原文件的属性、递归复制目录;“mv”用于移动文件、目录或改名,常用“-vf”选项显示详细信息、强制覆盖;

Linux笔记03: Linux常用命令_3.4文件和目录共用命令的更多相关文章

  1. Linux 命令大全 - 管理文件和目录的命令

    1.pwd 显示当前目录 该命令的英文解释为print working directory(打印工作目录).输入pwd命令,Linux会输出当前目录. 2.cd 命令用来改变所在目录 cd / 转到根 ...

  2. (23)gzip命令:压缩文件或目录&&gunzip命令:解压缩文件或目录

    1.gzip 是 Linux 系统中经常用来对文件进行压缩和解压缩的命令,通过此命令压缩得到的新文件,其扩展名通常标记为".gz". 再强调一下,gzip 命令只能用来压缩文件,不 ...

  3. (22)zip命令:压缩文件或目录&&unzip命令:解压zip文件

    1.zip 命令基本格式如下: [root@localhost ~]#zip [选项] 压缩包名 源文件或源目录列表 注意,zip 压缩命令需要手工指定压缩之后的压缩包名,注意写清楚扩展名,以便解压缩 ...

  4. linux笔记:linux常用命令-目录和文件处理命令

    命令格式: 命令 [-选项] [参数] 例: ls -la /etc 注意:个别命令的使用不遵循此格式. 目录处理命令:ls(列目录) 更多选项: -h 以kb等利于人阅读的方式取代字节显示文件大小 ...

  5. Linux常用命令01(文件和目录)

    目标 查看目录内容 ls 切换目录 cd 创建和删除文件 touch rm mkdir 拷贝和移动文件 cp mv 查看文件内容 cat more grep 其他 echo 重定向 > 和 &g ...

  6. Linux常用命令之文件和目录处理命令

    目录 1.Linux命令的普遍语法格式 2.目录处理命令 一.显示目录文件命令:ls 二.创建目录命令:mkdir 三.切换目录命令:cd 四.shell内置命令和外部命令的区别 五.显示当前目录命令 ...

  7. Linux系列教程(四)——Linux常用命令之文件和目录处理命令

    这个系列教程的前面我们讲解了如何安装Linux系统,以及学习Linux系统的一些方法.那么从这篇博客开始,我们就正式进入Linux命令的学习.学习命令,首先要跟大家纠正的一点就是,我们不需要记住每一条 ...

  8. 【Linux笔记】Linux目录结构

    [Linux笔记]Linux目录结构   本文内容整理自网络,以作参考. /:根目录,位于linux文件系统目录结构的顶层,一般根目录下只存放目录,不要存放文件,/etc./bin./dev./lib ...

  9. Linux系列教程(四)——Linux文件和目录处理命令

    这个系列教程的前面我们讲解了如何安装Linux系统,以及学习Linux系统的一些方法.那么从这篇博客开始,我们就正式进入Linux命令的学习.学习命令,首先要跟大家纠正的一点就是,我们不需要记住每一条 ...

  10. LINUX文件及目录管理命令基础(2)

    Linux文件类型 文件作为Linux操作系统中最常见的对象,在系统中被分为了多种类型 如下: - 普通文件 d 目录 l 链接 b 块设备 c 字符设备 p 管道设备 s 套接字文件 Linux目录 ...

随机推荐

  1. 深入探讨安全验证:OAuth2.0、Cookie与Session、JWT令牌、SSO与开放授权平台设计

    什么是认证和授权?如何设计一个权限认证框架? 认证和授权是安全验证中的两个重要概念.认证是确认身份的过程,用于建立双方之间的信任关系.只有在认证成功的情况下,双方才可以进行后续的授权操作.授权则是在认 ...

  2. PicGo+Github图床配置

    为了将 PicGo 设置为使用 GitHub 作为图床,您需要先创建一个 GitHub 仓库用于存储图片,然后在 PicGo 中进行相应的配置.您已经创建了一个仓库,所以让我们来配置 PicGo. 安 ...

  3. 白话领域驱动设计DDD

    容我找个借口先,日常工作太忙,写作略有荒废.一直想聊下领域驱动设计,以下简称DDD,之前也看过一些教程,公司今年两个项目--银行核心和信用卡核心,都深度运用DDD成功落地,有人说DDD挺难理解,在此讲 ...

  4. C++的编译链接与在vs中build提速

    通过gcc或msvc,clang等编译器编译出来的C++源文件是.o文件.在windows上也就是PE文件,linux为ELF文件,在这一步中,调用其它代码文件中的函数的函数地址是未知的(00000) ...

  5. ThreadLocal:线程中的全局变量

    最近接了一个新需求,业务场景上需要在原有基础上新增2个字段,接口新增参数意味着很多类和方法的逻辑都需要改变,需要先判断是否属于该业务场景,再做对应的逻辑.原本的打算是在入口处新增变量,在操作数据的时候 ...

  6. Hugging News #0904:🤗 登陆 AWS Marketplace

    每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...

  7. Win10 误删winsock注册表修复。 winsock.reg

    手贱删除了注册表的winsock项, 导致无法上网. 导入后需要重启电脑才能上网, 这个文件是我在别人电脑里导出来的. 下载地址: https://pan.baidu.com/s/1wH8SdeWsx ...

  8. js监控微信浏览器的自带的返回事件(延迟解决微信返回立即执行popstate事件)

    /** * 浏览器回退事件监听 */ var listenerBackHandler = { param: { isRun: false, //防止微信返回立即执行popstate事件 }, list ...

  9. 【Azure Batch】在批处理的Task中如何让它执行多个CMD指令呢

    问题描述 根据Azure Batch的入门文档(使用 Azure 门户创建 Batch 帐户并运行作业 : https://docs.azure.cn/zh-cn/batch/quick-create ...

  10. 多主架构:VLDB技术论文《Taurus MM: bringing multi-master to the cloud》解读

    本文分享自华为云社区<多主创新,让云数据库性能更卓越>,作者: GaussDB 数据库. 华为<Taurus MM: bringing multi-master to the clo ...