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

Linux文件和文件夹命令详解

1.Linux文件类型详解

常见的Linux文件类型:
普通文件(Regular File):(例如文本文件、二进制文件、图片、视频和压缩文件等;)
普通文件是最常见的文件类型,存储了实际的数据;
可以包含文本、二进制数据、程序代码等;
在文件系统中使用普通文件的名称来标识。
​
目录(Directory):(例如 home、bin、usr、etc 等目录;)
目录用于组织和存储文件和其他目录;
目录中包含了文件系统中其他文件和目录的入口;
由于目录本身也是文件,所以可以在目录中存储数据。
​
符号链接(Symbolic Link):(例如 /usr/bin 目录下的 python3 等符号链接文件;)
符号链接是一个指向另一个文件或目录的特殊文件;
它创建了一个新的文件路径,指向目标文件或目录;
符号链接可以跨越文件系统边界。
​
设备文件(Device File):(例如 /dev/sda 表示硬盘设备文件, /dev/null 表示空设备文件;)
设备文件是用于与硬件设备进行通信的特殊文件;
在Linux中,设备文件分为两种类型:字符设备文件和块设备文件;
字符设备文件用于处理字符流数据,比如键盘或串口设备;
块设备文件用于处理以固定大小块为单位的数据,比如硬盘驱动器。
​
命名管道(Named Pipe):(例如系统进程间通信中的管道;)
命名管道是一种进程间通信机制,允许不相关的进程通过该管道进行通信;
命名管道在文件系统中具有唯一的名称,并将数据传递给连接到该命名管道的进程。
​
套接字(Socket):(例如作为网络通信的套接字文件;)
套接字用于不同主机之间的网络通信;
通过套接字,进程可以通过网络发送和接收数据。
​
字符特殊文件(Character Special File):(例如键盘、鼠标等设备特殊文件。)
字符特殊文件是一种特殊设备文件,用于与设备驱动程序进行低级别的通信;
与字符设备文件相比,字符特殊文件通过一次发送和接收字符来处理数据。

2.Linux文件夹新建,删除,复制,剪切命令

1.文件夹新建命令:
mkdir:用于创建一个新的文件夹。
例如:mkdir folder_name 将创建一个名为 “folder_name” 的文件夹。
​
2.文件夹删除命令:
rmdir:用于删除一个空文件夹。
例如:rmdir folder_name 将删除名为 “folder_name” 的空文件夹。
rm:用于删除一个非空文件夹及其内容。
例如:rm -r folder_name 将删除名为 “folder_name” 的文件夹及其内容。
​
3.文件夹复制命令:
cp:用于复制文件夹及其内容到目标位置。
例如:cp -r folder_name destination 将复制名为 “folder_name” 的文件夹及其内容到指定的 “destination” 目录中。
​
4.文件夹剪切命令:
mv:用于剪切文件夹到目标位置,同时可以更改文件夹名称。
例如:mv folder_name destination 将剪切名为 “folder_name” 的文件夹到指定的 “destination” 目录中。
例如:mv folder_name new_folder_name 将重命名名为 “folder_name” 的文件夹为 “new_folder_name”。

3.Linux文件新建,删除,复制,剪切以及重命名命令详解

1.文件新建命令:
touch:用于创建一个新文件。
示例:touch file_name.txt 将在当前目录下创建一个名为 “file_name.txt” 的空文件。
​
2.文件删除命令:
rm:用于删除一个或多个文件。
示例:rm file_name.txt 将删除名为 “file_name.txt” 的文件。
若要删除多个文件,可以使用通配符,如 rm *.txt 将删除所有以 “.txt” 结尾的文件。
若要删除包括子目录在内的所有文件和文件夹,可以使用 rm -r folder_name。
​
3.文件复制命令:
cp:用于复制文件到目标位置。
示例:cp file_name.txt destination 将复制名为 “file_name.txt” 的文件到指定的 “destination” 目录中。
若要递归地复制整个文件夹及其内容,可以使用 cp -r folder_name destination。
若要保留源文件的元数据(如权限和时间戳等),可以使用 cp -p file_name.txt destination。
​
4.文件剪切(移动)及重命名命令:
mv:用于将文件移到目标位置,同时也可用于重命名文件。
示例:mv file_name.txt destination 将移动名为 “file_name.txt” 的文件到指定的 “destination” 目录中。
若要重命名文件,可以将目标位置指定为新的文件名,例如:mv old_file_name.txt new_file_name.txt。

4.Linux文件查找find搜索命令

Find 命令的基本用法:find [path] [expression]
其中,path 表示指定要搜索的路径,expression 表示要对查找结果进行限定的表达式。
​
以下列举了一些常用的表达式:
-name 指定要查找的文件或目录名称
示例:find /home/user -name "*.txt" 将在目录 /home/user 下查找所有以 “.txt” 结尾的文件。
​
-type 指定查找的文件类型
f:查找普通文件;
d:查找目录;
l:查找符号链接文件;
示例:find /home/user -type f -name "*.txt" 将在目录 /home/user 下查找所有以 “.txt” 结尾的普通文件。
​
-mtime 按文件修改时间(单位为天)查找文件
示例:find /home/user -mtime -7 将在目录 /home/user 下查找最近7天内修改的文件。
​
-size 按文件大小查找文件
+n:查找大于 n 的文件;
-n:查找小于 n 的文件;
示例:find /home/user -size +1M 将查找文件大小超过 1MB 的文件。
-user 按文件属主查找文件
示例:find /home/user -user root 将查找所有属于 root 用户的文件。
​
-perm 按权限查找文件
示例:find /home/user -perm 644 将查找所有权限为 644 的文件。
​
-exec 在查找结果中执行命令
示例:find /home/user -name "*.txt" -exec rm {} \; 将查找所有以 “.txt” 结尾的文件并删除它们。

5.Linux文件,文件夹以及通配符的使用

其常用的通配符有 *、?、[] 三种。
* 通配符能够匹配零个或多个字符,如 *.txt 可以匹配所有 .txt 结尾的文件。
? 通配符能够匹配任意一个字符,如 file?.txt 可以匹配 file1.txt、file2.txt 等文件,但不能匹配 file10.txt。
[] 通配符可用来匹配多个字符中的一个。如 file[123].txt 可以匹配 file1.txt、file2.txt 或 file3.txt
​
以下是一些基本的文件和文件夹操作:
显示当前工作目录下的所有文件和文件夹:ls
显示指定目录下的所有文件和文件夹:ls /path/to/directory
进入指定目录:cd /path/to/directory
返回上一级目录:cd ..
创建一个名为 newfile 的空文件:touch newfile
创建一个名为 newdirectory 的目录:mkdir newdirectory
删除一个名为 file.txt 的文件:rm file.txt
删除一个名为 directory 的空目录:rmdir directory
递归删除一个名为 directory 的目录及其下所有文件和子目录:rm -r directory

6.Linux文件查看命令:Cat,More,Less,Head,Tail

cat 命令:
cat 命令用于查看文件内容,并将其全部输出到终端。
示例:cat file.txt 将显示文件 file.txt 的全部内容。
​
more 命令:
more 命令用于分页显示文件内容,逐页显示,按 Enter 键进行翻页。
示例:more file.txt 将按页显示文件 file.txt 的内容。
​
less 命令:
less 命令也用于分页显示文件内容,类似于 more 命令,但它支持向上和向下滚动,并提供更多功能。
示例:less file.txt 将按页显示文件 file.txt 的内容。
​
head 命令:
head 命令用于显示文件的前几行,默认为显示前 10 行。
示例:head file.txt 将显示文件 file.txt 的前 10 行内容。
​
tail 命令:
tail 命令用于显示文件的后几行,默认为显示后 10 行。
示例:tail file.txt 将显示文件 file.txt 的后 10 行内容。

7.Linux文件vi编辑命令

vi 是一款强大的文本编辑器,它常用于编辑各种类型的文件。下面是一些常用的 vi 编辑命令:
​
打开文件:
vi filename:打开名为 filename 的文件,如果文件不存在,则创建一个新文件。
​
切换到不同的模式:
命令模式(Command Mode):启动 vi 编辑器时默认的模式,可执行各种编辑器命令,例如保存、退出、搜索等。
插入模式(Insert Mode):在此模式下,可以输入和编辑文本内容。
可视模式(Visual Mode):可用于选择块文本以便复制、剪切或粘贴。
​
常用编辑命令:
i:在当前光标位置插入文本。
a:在当前光标位置的下一个位置插入文本。
o:在当前行的下方插入一个新行并进入插入模式。
x:删除当前光标所在位置的字符。
dd:删除当前行。
yy:复制当前行。
p:粘贴剪贴板中的内容。
​
保存和退出:
:w:保存文件但不退出 vi 编辑器。
:wq:保存文件并退出 vi 编辑器。
:q:退出 vi 编辑器(如果未修改文件内容)。
:q!:强制退出 vi 编辑器,放弃对文件的修改。

8.Linux文件权限的处理

1.查看文件权限:
使用 ls -l 命令可以显示文件或目录的权限信息
例如:ls -l filename
​
2.修改文件权限:
使用 chmod 命令可以修改文件或目录的权限:
(1)使用数字表示权限:chmod 三个数字 文件 (读r:4,写w:2,执行x:1,无权限-:0) 
第一个数字表示所有者(user)的权限,第二个数字表示用户组(group)的权限,第三个数字表示其他用户(others)的权限。
chmod 777 文件 (给所有者,用户组,其他用户最高权限有读写执行)
(2)使用符号表示权限:
u:代表所有者(user);
g:代表用户组(group);
o:代表其他用户(others);
a:代表所有用户(all);
+:增加权限;
-:删除权限;
r:读权限;
w:写权限;
x:执行权限。
$ chmod u+r filename  // 给所有者添加读权限
$ chmod g-w filename  // 移除所属组的写权限
$ chmod o+x filename  // 给其他用户添加执行权限
$ chmod a=rw filename  // 给所有用户设置读写权限
​
3.修改文件所有者和所属组:
(1)使用 chown 命令可以修改文件或目录的所有者:
$ sudo chown new_owner filename
(2)使用 chgrp 命令可以修改文件或目录的所属组:
$ sudo chgrp new_group filename
​
4.递归修改文件权限:使用 -R 选项可以递归地修改文件和目录的权限。
$ chmod -R 755 directory  // 递归设置目录及其内容为rwxr-xr-x

9.Linux中zip,rar,tar.gz压缩和解压操作

1.zip 压缩和解压:
(1)压缩:使用 zip 命令,类似于以下命令:
$ zip archive.zip file1 file2 file3
这将把 file1、file2 和 file3 压缩为一个名为 archive.zip 的压缩包。
​
(2)解压:使用 unzip 命令,类似于以下命令:
$ unzip archive.zip
这将解压缩名为 archive.zip 的压缩包。
​
2.rar 压缩和解压:
(1)压缩:使用 rar 命令,类似于以下命令:
$ rar a archive.rar file1 file2 file3
这将把 file1、file2 和 file3 压缩为名为 archive.rar 的压缩包。
​
(2)解压:使用 unrar 命令,类似于以下命令:
$ unrar x archive.rar
这将解压缩名为 archive.rar 的压缩包。
​
3.tar.gz 压缩和解压:
(1)压缩:使用以下命令将文件(夹)压缩为 tar.gz 格式的文件(例如将一个名为 folder 的文件夹压缩为 folder.tar.gz):
$ tar -czvf folder.tar.gz folder
注:-c 选项表示新建一个压缩包,-z 选项表示使用 gzip 压缩,-v 选项表示在压缩的过程中显示详细信息,-f 选项表示指定压缩包的名称。
​
(2)解压:使用以下命令解压缩 tar.gz 格式的文件:
$ tar -xzvf folder.tar.gz
注:-x 选项表示解压缩,-z 选项表示使用 gzip 解压缩,-v 选项表示在解压缩的过程中显示详细信息,-f 选项表示指定要解压缩的压缩包。

相关文章:

Linux文件和文件夹命令详解

1.Linux文件类型详解 常见的Linux文件类型: 普通文件(Regular File):(例如文本文件、二进制文件、图片、视频和压缩文件等;) 普通文件是最常见的文件类型,存储了实际的数据&#xf…...

MIKE水动力笔记20_由dfs2网格文件提取dfs1断面序列文件

本文目录 前言Step 1 MIKE Zero工具箱Step 2 提取dfs1 前言 在MIKE中,dfs2是一个一个小格格的网格面的时间序列文件,dfs1是一条由多个点组成的线的时间序列文件。 如下两图: 本博文内容主要讲如何从dfs2网格文件中提取dfs1断面序列文件。 …...

微服务nacos实战入门

注册中心 在微服务架构中,注册中心是最核心的基础服务之一 主要涉及到三大角色: 服务提供者 ---生产者 服务消费者 服务发现与注册 它们之间的关系大致如下: 1.各个微服务在启动时,将自己的网络地址等信息注册到注册中心&#x…...

PyCharm 远程连接服务器并使用服务器的 Jupyter 环境

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…...

HBase中的数据表是如何用CHAT进行分区的?

问CHA:HBase中的数据表是如何进行分区的? CHAT回复: 在HBase中,数据表是水平分区的。每一个分区被称为一个region。当一个region达到给定的大小限制时,它会被分裂成两个新的region。 因此,随着数据量的增…...

rabbitMQ的direct模式的生产者与消费者使用案例

消费者C1的RoutingKey 规则按照info warn 两种RoutingKey匹配 绑定队列console package com.esint.rabbitmq.work03;import com.esint.rabbitmq.RabbitMQUtils; import com.rabbitmq.client.Channel; import com.rabbitmq.client.DeliverCallback;/*** 消费者01的消息接受*/ p…...

分布式应用服务拆分

需求落地分布式应用服务 将需求转化为分布式应用服务的过程可以按照以下步骤进行: 理解需求:首先,你需要仔细阅读和理解业务需求。与相关的利益相关者(如业务分析师、产品经理等)进行沟通,确保你对需求的理…...

matplotlib 绘制双纵坐标轴图像

效果图: 代码: 由于使用了两组y axis,如果直接使用ax.legend绘制图例,会得到两个图例。而下面的代码将两个图例合并显示。 import matplotlib.pyplot as plt import numpy as npdata np.random.randint(low0,high5,size(3,4)) …...

74基于matlab的PSO-ELM的多输入,单输出结果预测,输出训练集和测试机预测结果及误差。

基于matlab的PSO-ELM的多输入,单输出结果预测,输出训练集和测试机预测结果及误差,适应度值。数据可更换自己的,程序已调通,可直接运行。 74matlabPSO-ELM多输入单输出 (xiaohongshu.com)...

shell之head命令

head命令 head命令是UNIX和Linux环境中常用的命令,用于在标准输出上显示文件的开头内容。 具体来说,head命令默认会显示给定文件开头的10行内容。如果指定了多个文件名,head命令会逐个显示每个文件的开头内容,并在每个文件显示的…...

网络安全之了解安全托管服务(MSS)

数字化已深入千行百业。数字化将给各行各业带来巨大的变化,现实世界和虚拟世界也将联系得更加紧密。随着云计算、大数据等新技术结合企业级业务的落地,数字时代的安全面临着前所未有的新挑战。近年来,网络安全问题日益严重,在企业…...

linux进程间通信之共享内存(mmap,shm_open)

共享内存,顾名思义就是允许两个不相关的进程访问同一个逻辑内存,共享内存是两个正在运行的进 程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常为同一段物理内存。进程可以将同一段物理内存连接到他们自己的地址空间中&#xff0c…...

C/C++---------------LeetCode第1748.唯一元素的和

唯一元素的和 题目及要求哈希算法暴力算法在main里使用 题目及要求 给你一个整数数组 nums 。数组中唯一元素是那些只出现 恰好一次 的元素。 请你返回 nums 中唯一元素的 和 。 示例 1: 输入:nums [1,2,3,2] 输出:4 解释:唯…...

什么是好用的HR人才测评?

对于HR来说,选用一个合适的测评工具,我想不外乎以下几点: 1、成本可控 不是所有的HR都能申请到足够的资金,去做专业的人才测评,尤其是中小企业,这可是一笔不小 的开支。即使是基层普通岗位的成本&#xf…...

【ARM Trace32(劳特巴赫) 使用介绍 5 -- Trace32 scan dump 详细介绍】

文章目录 1.1 JTAG 测试逻辑架构1.2 D型扫描触发器1.2.1 全扫描介绍1.3 IR 寄存器1.4 TDR(Test data registers)1.4.1 TDR 的实现1.4.1.1 Bypass Register1.4.1.2 Boundary-scan register1.5 Scan Dump1.5.1 soft fusion1.1 JTAG 测试逻辑架构 图 1-1 片上测试逻辑概念图 如前面…...

Java版B/S架构云his医院信息管理系统源码(springboot框架)

一、技术框架 ♦ 前端:AngularNginx ♦ 后台:JavaSpring,SpringBoot,SpringMVC,SpringSecurity,MyBatisPlus,等 ♦ 数据库:MySQL MyCat ♦ 缓存:RedisJ2Cache ♦ 消息队…...

面试经典(2/150)移除元素

面试经典(2/150)移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要…...

基于JavaWeb+SpringBoot+掌上社区疫苗微信小程序系统的设计和实现

基于JavaWebSpringBoot掌上社区疫苗微信小程序系统的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种…...

python_主动调用其他类的成员

# 主动调用其他类的成员 # 方式一: class Base(object):def f1(self):print("5个功能") class Foo(object):def f1(self):print("3个功能")# Base.实例方法(自己传self),与继承无关Base.f1(self)obj Foo() obj.f1()print("#"*20)# 方式二:按照类…...

Pytorch部分报错问题

一、存在问题 1.链接库报错 问题报错:undefined symbol: __nvJitLinkAddData_12_1, version libnvJitLink.so.12 2.GPU不能使用 问题报错:在torch安装后测试gpu是否可用 torch.cuda.is_available() false 返回false 问题分析: 可能是…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...