• linux常用操作命令中带/和不带的区别


    前言

    我在工作的时候总是疑惑执行命令是带/和不带的区别

    比如:rm -rf test/ 和 rm -rf test 还有rm -rf test/* 的区别
    在此统一做下实验,也给自己做个笔记

    1:删除 rm命令

    在文件中有这几个文件,我现在要删除dist文件夹
    在这里插入图片描述

    1:rm -rf dist

    结果:只是删除了dist这个文件夹
    在这里插入图片描述

    2:rm -rf dist/

    结果:只是删除了dist这个文件夹
    在这里插入图片描述

    3:rm -rf dist/*

    结果:删除dist文件下的所有文件,但是dist文件夹并未删除
    在这里插入图片描述

    3:rm命令参数

    -d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
    -f:强制删除文件或目录;
    -i:删除已有文件或目录之前先询问用户;
    -r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
    –preserve-root:不对根目录进行递归操作;
    -v:显示指令的详细执行过程。

    2:cp复制文件命令

    被修改的文件:
    在这里插入图片描述
    最新更新的文件:
    在这里插入图片描述

    1:cp txt test

    结果:将文件进行了替换
    在这里插入图片描述
    在这里插入图片描述

    2:cp txt test/

    结果:将文件进行了替换
    在这里插入图片描述

    3:cp txt test/*

    结果:文件进行了替换
    在这里插入图片描述

    4:cp命令参数

    -a:此参数的效果和同时指定"-dpR"参数相同;
    -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
    -f:强行复制文件或目录,不论目标文件或目录是否已存在;
    -i:覆盖既有文件之前先询问用户;
    -l:对源文件建立硬连接,而非复制文件;
    -p:保留源文件或目录的属性;
    -R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
    -s:对源文件建立符号连接,而非复制文件;
    -u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
    -S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
    -b:覆盖已存在的文件目标前将目标文件备份;
    -v:详细显示命令执行的操作。

    3:cp复制文件夹命令

    源:
    在这里插入图片描述

    目标:
    在这里插入图片描述

    1:cp -rf source text和cp -rf source text/ 和cp -rf source/ text/

    结果:讲source整个文件夹复制到了text下
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    2:cp -rf source/* text/和cp -rf source/** text/和yes|cp -rf source/** text

    结果:讲source文件下的内容文件覆盖到text目录下
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4:mv移动命令

    在这里插入图片描述

    在这里插入图片描述

    1:mv test1 test3和mv test1/ test3

    结果:把test1文件夹移动到test3了
    在这里插入图片描述
    在这里插入图片描述

    2:mv test1/* test3和yes|mv test1/* test3

    结果:把test1下的文件移动到test3,test1空文件夹还存在
    在这里插入图片描述

    3:mv命令参数

    –backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;
    -b:当文件存在时,覆盖前,为其创建一个备份;
    -f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
    -i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
    –strip-trailing-slashes:删除源文件中的斜杠“/”;
    -S<后缀>:为备份文件指定后缀,而不使用默认的后缀;
    –target-directory=<目录>:指定源文件要移动到目标目录;
    -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

    5:压缩和解压缩

    1:zip -r dist.zip a/ b.txt

    结果:将所输入的这几个文件打包为一个文件
    在这里插入图片描述

    2:zip -r test.zip dist/* 和zip -r test.zip dist/

    1:zip -r test.zip dist/* 整个是把dist夹里面的内容打包
    在这里插入图片描述
    在这里插入图片描述
    2:zip -r test.zip dist/* 整个是把dist夹打包,如下:
    在这里插入图片描述

    2:unzip -o test.zip -d dist/

    解压的时候一定要注意你需要的文件是以及压缩还是二级压缩,如我需要dist文件下的media文件夹,那么
    一级压缩:
    在这里插入图片描述
    二级压缩:
    在这里插入图片描述
    unzip只能讲文件进行一级解压缩,所以如果你需要的文件在二级压缩目录下,可能压缩后还需要移动
    在这里插入图片描述
    在这里插入图片描述
    或者直接改成一级压缩,然后利用unzip -o test.zip -d dist/ 进行覆盖

    3:zip命令参数

    -A:调整可执行的自动解压缩文件;
    -b<工作目录>:指定暂时存放文件的目录;
    -c:替每个被压缩的文件加上注释;
    -d:从压缩文件内删除指定的文件;
    -D:压缩文件内不建立目录名称;
    -f:此参数的效果和指定“-u”参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中;
    -F:尝试修复已损坏的压缩文件;
    -g:将文件压缩后附加在已有的压缩文件之后,而非另行建立新的压缩文件;
    -h:在线帮助;
    -i<范本样式>:只压缩符合条件的文件;
    -j:只保存文件名称及其内容,而不存放任何目录名称;
    -J:删除压缩文件前面不必要的数据;
    -k:使用MS-DOS兼容格式的文件名称;
    -l:压缩文件时,把LF字符置换成LF+CR字符;
    -ll:压缩文件时,把LF+cp字符置换成LF字符;
    -L:显示版权信息;
    -m:将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中;
    -n<字尾字符串>:不压缩具有特定字尾字符串的文件;
    -o:以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同;
    -q:不显示指令执行过程;
    -r:递归处理,将指定目录下的所有文件和子目录一并处理;
    -S:包含系统和隐藏文件;
    -t<日期时间>:把压缩文件的日期设成指定的日期;
    -T:检查备份文件内的每个文件是否正确无误;
    -u:更换较新的文件到压缩文件内;
    -v:显示指令执行过程或显示版本信息;
    -V:保存VMS操作系统的文件属性;
    -w:在文件名称里假如版本编号,本参数仅在VMS操作系统下有效;
    -x<范本样式>:压缩时排除符合条件的文件;
    -X:不保存额外的文件属性;
    -y:直接保存符号连接,而非该链接所指向的文件,本参数仅在UNIX之类的系统下有效;
    -z:替压缩文件加上注释;
    -$:保存第一个被压缩文件所在磁盘的卷册名称;
    -<压缩效率>:压缩效率是一个介于1~9的数值。

    4:unzip命令参数

    -c:将解压缩的结果显示到屏幕上,并对字符做适当的转换;
    -f:更新现有的文件;
    -l:显示压缩文件内所包含的文件;
    -p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换;
    -t:检查压缩文件是否正确;
    -u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中;
    -v:执行时显示详细的信息;
    -z:仅显示压缩文件的备注文字;
    -a:对文本文件进行必要的字符转换;
    -b:不要对文本文件进行字符转换;
    -C:压缩文件中的文件名称区分大小写;
    -j:不处理压缩文件中原有的目录路径;
    -L:将压缩文件中的全部文件名改为小写;
    -M:将输出结果送到more程序处理;
    -n:解压缩时不要覆盖原有的文件;
    -o:不必先询问用户,unzip执行后覆盖原有的文件;
    -P<密码>:使用zip的密码选项;
    -q:执行时不显示任何信息;
    -s:将文件名中的空白字符转换为底线字符;
    -V:保留VMS的文件版本信息;
    -X:解压缩时同时回存文件原来的UID/GID;
    -d<目录>:指定文件解压缩后所要存储的目录;
    -x<文件>:指定不要处理.zip压缩文件中的哪些文件;
    -Z:unzip-Z等于执行zipinfo指令。

  • 相关阅读:
    CyberDAO:web3时代的引领者
    神经网络的研究与应用论文,有关神经网络的论文
    vue实战入门后台篇十:springboot+mybatis实现网站后台-项目整合发布测试
    android Leakcanary/Studio Profiler/MAT 处理内存问题(泄漏和Big超大内存对象)
    微信小程序——简易复制文本
    智慧工地:实现作业区域安全管控
    leetcode-跳跃游戏系列
    alertmanager集群莫名发送resolve消息的问题探究
    windows 11+docker desktop+grafana+influxDB
    【Cocos新手进阶】父级预制体中的数据列表,在子预制体中的控制方法!
  • 原文地址:https://blog.csdn.net/qq_41694906/article/details/125555126