当前位置: 首页 > news >正文

【从零带你玩转Linux】目录文件相关操作指令

🏠个人主页:泡泡牛奶

🌵系列专栏:带你从零玩转Linux

大家好啊😚😚,本章主要给大家说明文件/目录的创建和删除,以及如何查看文件等一些常用的基本操作,如果对你有帮助的话,还不忘三连支持一下哦😘😘😘

文章目录

  • 前言
  • 列出目录内容 ls / ll
  • 显示文件inode信息 stat
  • 显示用户当前所在位置 pwd
  • 跳转工作目录 cd
  • 创建/更新文件信息 touch
  • 创建目录 mkdir
  • 删除目录 rmdir
  • 删除文件/目录 rm
  • 复制文件/目录 cp
  • 移动/重命名 文件/目录 mv
  • 查看文件内容 cat
  • 显示文件内容 more
  • 查看文件内容 less
  • 显示前n行 head
  • 显示后n行 tail
  • 总结

前言

在使用操作系统时,我们肯定会接触文件和目录,类比于我们常用的windows系统,想要更好的管理自己各种各样的工程或者软件,文件夹就是一个不错的管理手段,而在Linux中也同样使用了文件夹的操作,但在学习Linux之前,我们要首先有一个观念,Linux下一切皆文件,目录(文件夹)也同样是一个执行文件,在我们所说的exe程序,在Linux眼中就是一个执行文件,可以用二进制的形式打开😏

列出目录内容 ls / ll

英文全拼:list

语法:

ls [选项] [目录或文件]

特殊语法:

ll  <==>  ls -l

ll等同于ls -l

功能:

对于目录,列出该目录下的所有子目录与文件;

对于文件,列出文件名以及其他信息。

常用选项:

选项含义
-a列出目录下所有文件,包括隐含文件
-A同-a,但是不列出 “.” (当前目录) 和 “…” (父级目录)
-l列出文件的详细信息
-R(递归)列出所有子目录下的文件
-r对目录反向排序
-t以时间排序
-F在每个文件名后面附上字符来说明文件类型,"*“表示可执行文件,”/“表示目录,”@“表示链接,”|“表示FIFOs,”="表示套接字
-h显示文件(粗略)大小

实例:

ls -l
ls -la

内容解释:

image-20221002190247632

第一列 共10位,

  • 第1位表示文档类型,d表示目录,-表示文件,l表示链接文件,b表示可随机存取的设备,如U盘等,c表示一次性读取设备,如鼠标、键盘等。

  • 后9位,依次对应三种身份所拥有的权限,身份顺序为:owner(拥有者)、group(群组)、others(其他人),权限顺序为:readable(可读)、writable(可写)、excutable(可执行表示可执行文件,但内部一定要是正确的二进制编码才可执行,强行修改也运行不了)。

  • 如:-r-xr-x---的含义为当前文档是一个文件,拥有者可读、可执行,同一个群组下的用户,可读、可执行,其他人没有任何权限

第二列 表示链接数,表示有多少个文件链接到inode号码

第三列 表示owner(拥有者)

第四列 表示所属group(群组)

第五列 表示文档容量大小,单位字节

第六七八列 表示文档最后修改时间,注意不是文档的创建时间

  • 从前到后,分别是 月 日 具体时间

第九列 表示文档名称。以点(.)开头的是隐藏文档

image-20221002200739085

显示文件inode信息 stat

语法:

stat [文件或目录]

功能:

查看文件inode(索引节点)信息

实例:

stat test.c

stat dir

image-20221002201631205

内容解释:

[root@VM-8-11-centos code]# stat dir
  File: ‘dir’
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd01h/64769d    Inode: 791878      Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-10-02 19:25:09.146174770 +0800
Modify: 2022-10-02 19:25:09.146174770 +0800
Change: 2022-10-02 19:25:09.146174770 +0800
 Birth: -
  文件名: ‘dir’
  大小: 4096          (以512字节为单位的)块数量: 8          文件最小寻址单元: 4096   目录
设备: fd01h/64769d    索引节点: 791878      连接到此文件的数量: 2
权限: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
最近访问时间: 2022-10-02 19:25:09.146174770 +0800
最近更改时间: 2022-10-02 19:25:09.146174770 +0800
最近inode更改时间: 2022-10-02 19:25:09.146174770 +0800
 创建时间: -

显示用户当前所在位置 pwd

语法:

pwd

功能:

显示用户当前所在位置

实例:

image-20221003183303086

跳转工作目录 cd

语法:

cd [目录名]

功能:

跳转工作目录。将当前工作目录改变到指定的目录下。

实例:

cd .. : 返回上级目录
cd /home/zhangsan/code : 绝对路径
cd ../day02/ : 相对(上级的)路径
cd ~ : 进入用户家目
cd - : 返回最近访问目录

image-20221003184714480

创建/更新文件信息 touch

语法:

touch [选项] [文件名]

功能:

  1. 若文件不存在,创建一个新的文件
  2. 更改文件或目录的日期时间,包括存储时间和更改时间

常用选项:

选项含义
-a修改(Access)最近访问时间
-d设定指定日期时间
-m修改(Modify)最近更改时间
-c若文件不存在,不创建新文件

实例:

touch file

touch -d 2022-10-10 file

image-20221003193946031

创建目录 mkdir

语法:

mkdir [目录名]

功能:

创建目录

实例:

mkdir dir

删除目录 rmdir

语法:

rmdir [-p] [目录名]

功能:

删除所选择目录

参数说明:

  • -p :当子目录全部被删除后父目录变成空目录,就把父目录一起删除

实例:

将工作目录下,名为 dir 的子目录删除 :

rmdir dir

在工作目录下的 dir 目录中,删除名为 test 的子目录。若 test 删除后,dir 目录成为空目录,则 dir 删除。

rmdir -p dir/test

删除文件/目录 rm

英文全拼:remove

语法:

rm [选项] [文件或目录]

功能:

删除文件或目录(删除目录要一定要配合-r)

常用选项:

选项含义
-r(递归删除)删除目录下所有文件
-f即使文件属性为只读(即写保护),直接删除(不询问)
-i删除前逐一确认

实例:

删除文件:

rm file

删除目录前询问:

rm -ri dir

删除根目录下所有文件,且不询问:(当你在接触公司数据库的时候输入这一段,那多半是废了,可以准备提桶跑路了)

rm -rf /

输完之后,你的远程服务器多半也用不了了,可以选择重装

复制文件/目录 cp

英文全拼:copy

语法:

cp [选项] [源文件/目录] [目的地文件/目录]

功能:

复制文件或目录

注意:

若目的地并非一个存在的目录则会出现错误信息

常用选项:

选项含义
-f覆盖已经存在的目标文件而不给出提示
-i覆盖已经存在的目标文件每次询问
-r(递归拷贝)若是目录,将此目录下的所有子文件和子目录一起复制
-l不复制文件,只生成连接文件

实例:

将dir1递归拷贝至dir2

cp -r dir1 dir2

移动/重命名 文件/目录 mv

英文全拼:move

语法:

mv [选项] [源文件或目录] [目标文件或目录]

功能:

  1. 将源文件名改为目标文件名 (文件 x 文件)
  2. 将源文件移动到目标目录中 (文件 x 目录)
  3. 目标目录名存在,将源目录移动到目标目录;目标目录名不存在,将源目录名改为目标目录名 (目录 x 目录)

常用选项:

选项含义
-f强制移动目录或文件,若目标文件或目录同名,不询问
-i若目标文件或目录同名,询问
-b当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份

实例:

重命名

mv a.txt b.txt

mv a.txt /home/dir1/b.txt

目标目录与源目录位置不同,没有指定新文件名,效果就是仅仅移动

mv b.txt /home/dir2

查看文件内容 cat

语法:

cat [选项] [文件]

功能:

查看文件内容(不能上下翻动(纯键盘))

常用选项:

选项含义
-b对非空行输出行号
-n对所有行输出行号
-s不输出空行

实例:

普通显示

cat test.c

显示行号

cat -n test.txt

显示文件内容 more

语法:

more [选项] [+-num] [文件]

功能:

与cat类似,但相比于cat,more可以做到上下翻动(纯键盘

常用选项:

选项目录
-s当遇到两行以上的空行,只打印一行
-num一次显示num行
+num从第 num 行开始显示

常用操作命令:

操作指令含义
Enter向下n行,需要定义,默认为1
ctrl + F向下滚动一屏
ctrl + B向上滚动一屏
B回退一页
q(quit) 退出 more
=显示当前行号

实例:

显示文件内容

more test.txt

一次显示10行查看内容

more -10 test.txt

查看文件内容 less

语法:

less [选项] [文件]

功能:

less 与 more 类似,less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页(相比较more功能更强)

常用选项:

选项含义
-i忽略搜索时的大小写
-N显示每行的行号
-s多行空行只显示一行

常用操作命令:

操作指令含义
/字符串向上搜索 “字符串”
?字符串向下搜索 “字符串”
n重复前一个搜索
N反向重复前一个搜索
q(quit)退出less
pagedown向下翻动一页
pageup向上翻动一页

实例:

less -N test.c

显示前n行 head

语法:

head [-n 数字] [文件]

功能:

显示文件前n行(默认10行)

实例:

head -n 10 test.c

显示后n行 tail

语法:

tail [-n 数字] [文件]

功能:

显示文件后n行(默认10行)

实例:

tail -n 10 test.c

总结

虽然这些操作看起来简单,但务必要自己进行操作一遍,熟能生巧,当你重复使用多次,不用特意去记也能自然打出来,如果还没有配置Linux环境的可以看看这篇文章哦ο(=•ω<=)ρ⌒☆Linux环境搭建

如果有任何疑问或者有哪些错误也可以在下方留言,我注意到都会回复的(o゚v゚)ノ

相关文章:

  • k8s-资源管理
  • 版本控制工具 之 Git
  • 机器学习笔记 - 使用 Pix2Pix 进行图像翻译
  • 【一起学数据结构与算法】深度学习栈
  • RHCSA知识点汇总
  • Python程序员,你还在用selenium吗?试试Playwright吧
  • STM32Fxx位带操作还不会?哲学三问让你实现位带自由(含位带操作核心代码)以LED与键盘为例
  • 大厂笔试面试总汇目录
  • ESP32 LVGL8.1 M5 Core2 + LVGL + IDF 详细的移植教程 (30)
  • 【论文阅读】Search-Based Testing Approach for Deep Reinforcement Learning Agents
  • c++版模板匹配与特征金字塔结构
  • 软件工程和Maven
  • 基于haarlike特征提取和Adaboost 的红绿灯/人行道检测识别matlab仿真
  • React的高阶组件详解
  • Python基础快速入门
  • 【comparator, comparable】小总结
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • es6
  • extract-text-webpack-plugin用法
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • Idea+maven+scala构建包并在spark on yarn 运行
  • MaxCompute访问TableStore(OTS) 数据
  • Redis 中的布隆过滤器
  • 测试开发系类之接口自动化测试
  • 前端攻城师
  • 收藏好这篇,别再只说“数据劫持”了
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 用Canvas画一棵二叉树
  • 优秀架构师必须掌握的架构思维
  • 自动记录MySQL慢查询快照脚本
  • Semaphore
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • "无招胜有招"nbsp;史上最全的互…
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #162 (Div. 2)
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)计算机毕业设计大学生兼职系统
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)winform之ListView
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .net 4.0发布后不能正常显示图片问题
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET的数据绑定
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .sh 的运行
  • /dev下添加设备节点的方法步骤(通过device_create)
  • /run/containerd/containerd.sock connect: connection refused
  • ::什么意思
  • @ComponentScan比较
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • [ 数据结构 - C++] AVL树原理及实现
  • [AAuto]给百宝箱增加娱乐功能