• (三)linux文件与目录管理


    一、处理目录的常用命令

    Linux系统中使用以下命令来查看文件的内容

    • cat 由第一行开始显示文件内容
    • tac 从最后一行开始显示,可以看出tac是cat的倒着写
    • nl 显示的时候,顺道输出行号!
    • more 一页一页的显示文件内容
    • less 与more类似,但是比more更好的是,他可以往前翻页
    • head 只看头几行
    • tail 只看尾巴几行

    你可以使用 man [命令]  来查看各个命令的使用文档,如: man cp

    (1)ls列出目录

    选项与参数:

    • -a : 全部的文件,连同隐藏文件(开头为.的文件)一起列出来;(常用)
    • -l :  长数据串列出,包含文件的属性与权限等等数据;(常用)

    举个栗子:

    ①将家目录下的所有文件列出来(含属性与隐藏档) - 

    ls -al ~

    ②当然了你也可以ls后面跟具体的文件,查看某单个文件详情信息

    ls -l test.text

     ③还可以在ls后面跟具体目录下的文件夹

    (2)cd(切换目录)

    这个就不再讲啦,大家应该用的很多~

    (3)pwd(显示目前所在的目录)

    pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。

    (4)mkdir (创建目录)

    ①基本使用方法,我这里是提示文件已经存在了奥。

    ②我们还可以在 mkdir 后面跟个 -m 权限  文件名

    不设置权限 默认是给他个755的权限。

    mkdir -m 777 test2

    但是如果我们想递归的创建该怎么办呢?

    ③如果还是mkdir aa/bb/cc 他是创建不成功的,因为aa存在,bb不存在,你去创建cc就报错了,那怎么办?加参数 -p

    mkdir -p aa/bb/cc

    (5)rmdir(删除空的目录)

    注意哦,只能删除空的文件夹哦!

    但是上面我们刚递归创建了一个文件夹,mkdir aa/bb/cc ,那这个时候我们该怎么删除呢?

    我们也可以加个参数 -p 递归的删,从cc开始删,cc没内容就删掉,然后到bb,如果bb没内容也就直接删掉

    rmdir -p aa/bb/cc

    (6)cp(复制文件或目录)

    ①基本使用场景

    1. # cp [被复制的文件] [给复制出来的文件起个名字]
    2. cp test.txt testCopy.txt

     ②复制几个文件到文件夹

    1. # cp 文件1 文件2 目标目录
    2. cp testCopy.txt test.txt aa

     ③cp -p    连同文件的属性一起复制过去,而非使用默认属性(备份常用)

    我们看下图,我首先将test.txt文件设置权限777,也就是rwxrwxrwx

    然后我们使用命令 cp test.txt testCopy.txt 

    接着我们查看复制出来的文件testCopy.txt的属性 发现是755,也就是说是rwxr-xr-x

    说明使用 cp去复制文件 并不能把文件的属性一起复制过去。

     好,重点来了,那我们用 cp -p试试看。

    由上图可知,目前现在有2个文件,test.txt的权限是777,testCopy.txt的权限是755,我们使用 cp -p再复制一份文件testCopy2.txt试试看

    由下图可以看出来,cp -p能够连同文件的属性一起复制过去。 

    ④cp -a:相当于 -pdr的意思,至于 pdr 请参考下列说明(常用)

    ⑤cp -d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;

    简单来说就是如果你复制的是一个链接,那复制返回的就是一个链接而非文件本身。

    ⑥cp -f:为强制(force的意思,若目标文件已经存在且无法开启,则移除后再尝试一次)

    简单来说就是 如果这个目标文件已经存在了,那我就把他删掉然后再添加一个同样的名字,也就是覆盖。

    ⑦cp -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)

    简单来说就是覆盖之前 给个提示。

    ⑧cp -r:递归持续复制,用于目标的复制行为(常用)

    ⑨cp -s:复制成为符号连结档(symbolic link),亦即【捷径】文件

    ⑩cp -u:若destination比source旧才升级destination!

    就是拷贝的文件比我们的文件新的话 那我才去覆盖。

    (7)rm(移除文件或目录)

    ①rm -f:就是force的意思,忽略不存在的文件,不会出现警告信息

    ②rm -i:互动模式,在删除前会询问使用者是否动作

    ③rm -r:递归删除,最常用在目录的删除了,这是非常危险的选项

    (8)mv(移动文件与目录,或修改名称)

    ①改名

    1. # 改名字
    2. # mv 原有名字 现有名字
    3. mv test.txt test.sh

    ②移动

    1. # mv 移动
    2. # 移动这2个文件到aa这个文件夹里
    3. mv test.sh test.txt aaa

    ③mv -f:force强制的意思,如果目标文件已经存在,不会询问而直接覆盖

    ④mv -i:若目标文件(destination)已经存在时,就会询问是否覆盖

    ⑤mv -u:若目标文件已经存在,且source比较新,才会更新(update)

  • 相关阅读:
    二叉树【Java】
    Java程序设计——JDBC基础(JDBC编程)
    神经网络产品图片分析,神经网络产品图片下载
    微信小程序python+uniapp+hbuiderx宠物美容用品商城领养寄养系统i843n
    单例模式的七种写法
    数学建模之拟合及其代码
    Handler常见问题
    基于数字孪生的车路协同虚拟仿真平台研究
    题目:2729.判断一个数是否迷人
    css flex实现同行div根据内容高度自适应且保持一致
  • 原文地址:https://blog.csdn.net/Sean_0819/article/details/126774092