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

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 选项表示指定要解压缩的压缩包。

http://www.kler.cn/a/133811.html

相关文章:

  • 鸿蒙next版开发:ArkTS组件点击事件详解
  • 前端垂直居中的多种实现方式及应用分析
  • Node.js笔记
  • mongoDB的安装及使用
  • 用vscode编写verilog时,如何有信号定义提示、信号定义跳转(go to definition)、模块跳转这些功能
  • 【机器学习】机器学习中用到的高等数学知识-2.概率论与统计 (Probability and Statistics)
  • MIB 6.1810实验Xv6 and Unix utilities(2)sleep
  • 九、Linux用户管理
  • Windows安装多个版本的Java
  • vue.js javascript js判断是值否为空
  • 庖丁解牛:NIO核心概念与机制详解 03 _ 缓冲区分配、包装和分片
  • 八股文-TCP的三次握手
  • C++-特殊类和单例模式
  • Leetcode—142.环形链表II【中等】
  • 基于springboot实现智能热度分析和自媒体推送平台系统项目【项目源码】
  • 将AI技术与VR元宇宙相结合的整体解决方案
  • 【Redis】zset常用命令集合间操作内部编码使用场景
  • 智能驾驶汽车虚拟仿真视频数据理解(一)
  • Java学习之路 —— Java高级
  • 2023-11-17 VsCode使用makefile进行多文件编译
  • 前端js常用代码段总结
  • 多功能神器,强劲升级,太极2.x你值得拥有!
  • Java Swing模拟银行自动取款机
  • OpenHarmony源码下载
  • mount /dev/mapper/centos-root on sysroot failed处理
  • python命名空间字典