Linux常用文件操作命令

news/2024/11/15 13:38:51/文章来源:https://www.cnblogs.com/xyh9039/p/18278973

本章将和大家分享Linux常用的文件操作命令。废话不多说,下面我们直接进入主题。

一、目录切换(cd命令)

在Linux系统中,cd 是一个用于切换当前工作目录的命令,它是 "change directory" 的缩写。基本用法如下所示:

1、不带参数

示例:cd 或 cd~

如果cd命令后没有跟任何参数,它会将当前用户的工作目录切回到其主目录(通常是/home/用户名,但根据系统的不同,主目录的路径可能会有所不同)。

2、切换到其它用户的主目录

示例:cd ~username

切换到username用户的主目录,前提是你有权限这么做。

3、使用波浪线(~)表示主目录

示例:cd ~/Documents

这会直接进入到当前用户主目录下的 Documents 目录。 

4、切换到特定目录

示例:cd directory_name

这里,directory_name 是你想要进入的目录名,该目录必须是当前目录的子目录。

5、指定目录(绝对路径)

示例:cd /root/myfolder/directory_name

从根目录(/)开始的完整路径,允许你直接通过提供完整的路径来切换目录,无论该目录在文件系统的什么位置。

6、指定目录(相对路径)

示例:cd ../parent_directory

从当前工作目录开始的路径。

7、返回上一级目录

示例:cd ..

使用 .. 表示当前目录的上一级目录。

8、切换到上一次所在的目录

示例:cd -

cd -命令会将当前工作目录切换到上一次所在的目录。这在你需要在两个目录之间频繁切换时特别有用。

9、直接进入多级目录

示例:cd dir1/dir2/dir3

如果目录结构允许,可以直接通过这种方式跳转多级目录。

10、中断当前正在运行的命令或程序

示例:Ctrl C

Ctrl + C 命令用于中断当前正在运行的命令行程序或进程。

11、打印工作目录

示例:pwd

pwd是“Print Working Directory”的缩写,意为“打印工作目录”。这个命令的功能是显示当前用户所在的目录路径。

12、温馨提示

  • 当输入长目录路径时,可以使用 Tab 键自动补全路径,提高效率。
  • 在复杂的目录结构中,结合使用 ls 和 pwd 命令可以帮助更好地理解当前位置和决定下一步的导航方向。
  • 对于频繁访问的目录,可以考虑设置别名(alias)来简化命令。

二、Linux文件和目录简单操作

1、查看文件

ls 命令用于列出当前目录下的文件和文件夹(也称为目录)。它可以显示当前目录下的文件和文件夹,也可以显示指定目录下的内容。

基本语法

  • ls:不带任何选项时,ls 会列出当前目录中的文件和目录名称,按字母顺序排序。

常用选项

  • -l(长格式):以长格式显示文件和目录的详细信息,包括权限、所有者、大小、修改日期等。
  • -a(全显):显示包括以点(.)开头的隐藏文件在内的所有文件和目录。
  • -h(人性化大小):在显示文件大小时,使用 KB、MB、GB 等易于阅读的单位。
  • -R(递归):递归列出目录及其子目录下的所有内容。
  • -t(按时间排序):按照修改时间的先后顺序列出文件和目录,最新的排在最前面。
  • -S(按大小排序):按照文件大小排序,从大到小。

组合使用示例

  • ls -l:会以长格式(long format)列出目录的内容,显示更详细的文件或目录信息。
  • ll:ls -l 在 Linux 系统中可以简写为 ll ,但是需要注意的是有些场景是不适用的,例如:进入到 Docker 容器内部的时候就不支持 ll 简写,只能使用 ls -l 命令。
  • ls -a:这个选项会列出所有文件和目录,包括以.开头的隐藏文件和.(当前目录)及..(父目录)。
  • ls -A:这个选项也会列出所有文件和目录,但它不会列出.(当前目录)和..(父目录)。
  • ls -al:列出包括隐藏文件在内的所有文件和目录的详细信息。
  • ls -lh:以人性化大小单位显示当前目录下文件和目录的详细信息。
  • ls -lt:按修改时间倒序列出当前目录下的文件和目录。
  • ls -R:递归列出当前目录及其子目录下的所有文件和目录。
  • ls -lah:以长格式列出包括隐藏文件在内的所有文件和目录,并使用人性化大小单位。
  • ls -r:将文件以相反次序显示(原定依英文字母次序)
  • ls -t:将文件依建立时间之先后次序列出
  • ls -F:选项用于在列出的每个文件或目录名后附加一个指示符,以区分不同类型的条目。这些指示符有助于用户快速识别目录、可执行文件、符号链接等。
  • 显示指定目录下的内容示例:ls -l root/myfolder/

2、创建文件

mkdir 是用于创建目录(文件夹)的命令。例如:mkdir 目录路径/目录名。

touch 用于创建普通文件。例如:touch 文件路径/文件名。其中文件路径可以是相对路径也可以是绝对路径。

3、删除文件

删除普通文件:rm + 文件路径/文件名。示例:rm test.txt

删除空目录:rmdir + 目录路径/目录名。示例:rmdir mytest

删除空目录也可以使用:rm -r +目录路径/目录名(-r 是rm的参数)。示例:rm -r ./mytest

删除非空目录:rm -rf +目录路径/目录名。示例:rm -rf ./myfolder/mytest/(PS:输入目录路径时此处的 ./ 建议保留,以免不小心误删除别的文件。)(-f 是rm的参数,表示忽略确认提示。)

4、复制文件或目录(cp命令)

cp命令是Linux系统中文件操作的重要工具,通过不同的选项,它可以灵活地用于各种文件和目录的复制任务。

命令格式

  • cp [选项] 源文件 目标文件 或 cp [选项] -t 目录 源文件...

常用选项

  • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于-dpR参数组合。
  • -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录。
  • -f:强行复制文件或目录,不论目标文件或目录是否已存在,且不给出提示。
  • -i:在覆盖目标文件之前给出提示,要求用户确认是否覆盖。
  • -p:除复制文件的内容外,还把修改时间和访问权限等属性也复制到新文件中。
  • -r 或 -R:递归处理,将指定目录下的所有文件与子目录一并处理。
  • -s:对源文件建立符号连接,而非复制文件。
  • -u:仅当源文件比目标文件新,或者目标文件不存在时,才复制文件。
  • -v:详细显示命令执行的操作。
  • -l:不复制文件,只是生成链接文件,类似于快捷方式。
  • -b:覆盖已存在的文件目标前将目标文件备份。
  • -S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀。

示例

  • 复制单个文件:cp source.txt destination.txt
  • 复制目录及其所有内容:cp -r source_dir destination_dir
  • 保留文件属性复制:cp -p file1.txt file2.txt
  • 递归复制目录并保留属性:cp -ar source_dir destination_dir
  • 创建符号链接而非复制文件:cp -s source.txt link.txt
  • 复制多个文件到指定目录:cp file1.txt file2.txt -t target_dir
  • 复制某个目录下所有的文件到其它目录:cp rumenz/* /tmp
  • 指定备份后缀:cp -b --suffix=.bak source.txt destination.txt 或 cp -b -S.bak source.txt destination.txt

注意事项

  • 当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
  • 使用cp命令复制目录时,必须使用-r或-R参数。
  • 在使用cp命令时,要特别注意文件覆盖的问题,特别是当目标文件已存在时。

5、移动或重命名文件和目录(mv命令)

mv 命令在 Linux 系统中用于移动或重命名文件和目录。它是非常基础且常用的命令之一,对于管理文件和目录结构至关重要。

基本语法

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

常用选项

  • -i:在覆盖文件之前提示用户确认。
  • -u:当源文件比目标文件新,或者目标文件不存在时,才进行移动或重命名。
  • -v:显示详细的处理过程信息。
  • -n:不要覆盖任何已存在的文件或目录。
  • -f:强制覆盖目标文件或目录,不进行任何提示。
  • -b:在覆盖前为文件创建备份,备份文件通常会在原文件名后加上波浪线(~)或者根据--suffix指定的后缀。
  • -t:指定目标目录,当移动多个文件到一个目录时很有用。

示例

1)移动文件

将文件 example.txt 从当前目录移动到 /tmp 目录:

示例:mv example.txt /tmp

2)重命名文件

将文件 oldname.txt 重命名为 newname.txt:

示例:mv oldname.txt newname.txt

注意,这里没有指定目标目录,因为重命名操作是在同一目录下进行的。

3)移动多个文件

将多个文件(file1.txt、file2.txt)移动到 /tmp 目录:

示例:mv file1.txt file2.txt /tmp 或 mv file1.txt file2.txt -t /tmp

或者,你也可以使用通配符来匹配多个文件:

示例:mv file*.txt /tmp

4)移动目录

将目录 mydir 移动到 /home/username/newdir(假设 /home/username/newdir 已经存在):

示例:mv mydir /home/username/newdir

注意,如果目标路径不存在且命令试图将一个目录移动到这个路径,它通常会失败(除非使用了 -t 选项,这在某些版本的 mv 中可用,但并非所有系统都支持)。

5)使用 -i 选项进行覆盖前的确认

在覆盖文件之前,提示用户确认:

示例:mv -i source.txt target.txt

如果 target.txt 已经存在,系统会询问你是否要覆盖它。

6)移动并创建备份

示例:mv -b -S.bak source.txt destination.txt (其中 -S.bak 表示设置备份文件的后缀为“.bak”,默认后缀为“~”)

注意事项

  • 使用 mv 命令时要小心,因为一旦文件或目录被移动或重命名,原始的引用或路径就可能失效。
  • 如果目标目录不存在且没有使用 -t 选项(如果可用),mv 命令可能会将源目录重命名为目标名称,而不是将其内容移动到新位置。
  • 在处理重要文件时,建议先备份,以防万一发生意外。
  • 当移动操作涉及到删除源文件或目录时,请谨慎操作,一旦执行,没有回收站可以恢复。

三、Linux压缩/解压文件操作

1、zip

压缩文件

将testA.txt和testB.txt压缩成一个zip包:zip test.zip testA.txt testB.txt

将所有.jpg的文件压缩成一个zip包:zip test.zip *.jpg

压缩目录

将文件夹test压缩成一个zip包:zip -r test.zip ./test

解压缩

将test.zip中的所有文件解压出来:unzip test.zip

将当前目录下面的mydata.zip解压到mydatabak目录里面:unzip mydata.zip -d ./mydatabak

2、rar

rar安装

CentOS默认没有安装 rar 软件,需要我们手动安装。

1)首先,我们需要先安装一下 gcc 编译器

命令:yum install gcc

可以发现它默认已经安装好了。

2)接着,下载 Linux 版本的 rar 软件安装包

命令:wget https://www.rarlab.com/rar/rarlinux-x64-6.0.2.tar.gz

如果wget的地址失效,可到rar官网下载:https://www.rarlab.com/download.htm

3)然后,将下载好的 rarlinux-x64-6.0.2.tar.gz 这个压缩包解压出来

命令:tar -zxvf rarlinux-x64-6.0.2.tar.gz

4)最后,进入解压出来的 rar 文件夹,并使用 make 命令进行编译

可以发现它很小,很快就编译好了。

5)检查是否安装成功

命令:rar

如果安装成功,则运行此命令时会显示出RAR的帮助信息。

至此我们的 rar 软件就算安装好了。

总结:

yum install gcc  //安装gcc编译器
wget https://www.rarlab.com/rar/rarlinux-x64-6.0.2.tar.gz  //下载安装包
tar -zxvf rarlinux-x64-6.0.2.tar.gz  //解压
cd rar  //进入到刚解压出来的rar文件夹
make  //编译
rar  //检查是否安装成功

压缩文件

命令1:rar a test.rar test1.txt test2.txt

这条命令是将test1.txt和test2.txt压缩成一个rar包

命令2:rar a test.rar ./*.txt

这条命令是将当前目录下所有.txt的文件压缩成一个rar包

压缩目录

命令:rar a test.rar test

这条命令是将文件夹test压缩成一个rar包

解压缩

命令1:unrar e test.rar

这条命令是将test.rar中的所有文件解压到当前目录

命令2:unrar e test.rar -w ./mydir

这条命令是将test.rar解压到指定目录

3、tar

参数说明

  • --help:查看帮助信息
  • -z:通过 gzip 过滤归档(gz压缩)
  • -c:创建一个新归档(压缩)
  • C:大写的C,改变至目录DIR(指定目录)
  • -x:从归档中解出文件(解压)
  • -v:详细地列出处理的文件
  • -f:指定归档文件或 ARCHIVE 设备
  • -a:使用归档后缀名来决定压缩程序
  • -t:列出归档内容

压缩文件或目录

示例1:tar -cf test.tar test1.txt test2.txt  (压缩指定文件)

示例2:tar -cf mydir.tar ./mydir  (压缩目录)

详细列出压缩包的所有文件

示例:tar -tvf test.tar

解压缩

示例1:tar -xf test.tar  (解压到当前目录)

示例2:tar -xf test.tar -C ./mydir  (解压到指定目录)

4、tar.gz

压缩文件或目录

语法:tar -zcf 压缩包名称 需要压缩的文件或目录

示例1:tar -zcf test.tar.gz test1.txt test2.txt  (压缩指定文件)

示例2:tar -zcf mydir.tar.gz ./mydir  (压缩目录)

解压缩

示例1:tar -zxf test.tar.gz  (解压到当前目录)

示例2:tar -zxf test.tar.gz -C ./mydir  (解压到指定目录)

5、xz

xz只能压缩文件,不能压缩目录(文件夹),可对 .tar 或 .zip 等压缩文件进行二次压缩。

压缩文件

语法:xz -z 要压缩的文件

如果要保留被压缩的文件加上参数 -k ,如果要设置压缩率加上参数 -0 到 -9调节压缩率,如果不设置,默认压缩等级是6。

示例:xz -z -k -9 test.zip

压缩成功后就会多出一个 test.zip.xz 的压缩文件。

解压缩

语法:xz -d 要解压的文件

使用 -k 参数可保留被解压缩的文件。

示例1:xz -d test.zip.xz

示例2:xz -d -k test.zip.xz  (保留被解压缩的文件)

6、tar.xz

.tar.xz文件是首先使用tar命令将多个文件或目录打包成一个.tar文件,然后再使用xz压缩算法对这个.tar文件进行压缩得到的文件。

压缩文件

示例:xz -z -k test.tar

压缩成功后就会多出一个 test.tar.xz 的压缩文件。

解压缩

示例1:xz -d test.tar.xz

示例2:xz -d -k test.tar.xz  (保留被解压缩的文件)

7、bz2(不常用)

解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName

8、bz(不常用)

解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知

9、Z(不常用)

解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName

 

此文由博主精心撰写转载请保留此原文链接:https://www.cnblogs.com/xyh9039/p/18278973

版权声明:如有雷同纯属巧合,如有侵权请及时联系本人修改,谢谢!!! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/743294.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows10下的docker容器启动命令docker -v相对路径的挂载目录位置

今天研究docker容器时,启动命令使用到了docker -v test:/app/backend/data 有个从宿主机写入文件到容器这个目录的需求,于是就尝试在宿主机上找到这个test目录 找了一圈都没找到,于是四处搜索,终于在stackoverflow上面找到了 https://stackoverflow.com/questions/61083772…

基于GA遗传优化算法的Okumura-Hata信道参数估计算法matlab仿真

1.算法仿真效果 matlab2022a仿真结果如下(完整代码运行后无水印):2.算法涉及理论知识概要遗传算法(Genetic Algorithm, GA)是一种模拟自然界生物进化过程的全局优化搜索算法,由John Holland于1975年提出。它利用达尔文的自然选择和遗传学原理,通过选择、交叉、变异等操作…

LTPSICE 小知识

1、初值设置:

软件工程进度报告——第二周

本周总结: 本周学习了Java语言的开发软件jdk的下载安装和使用方法,java代码的简单编写 1.下载安装jdk jdk需要在Oracle官网下载,下载地址:www.oracle.com下载时只需选择对应系统的安装包安装即可 2.jdk的安装目录 bin:该路径下存放了各种工具命令,其中比较重要的有:javac…

2024.07.13hadoop总结

hadoop基础概念学习在这之前并不了解hadoop,甚至没怎么听人提起过,直到学习大数据技术需要hadoop和python才开始学习。 hadoop的概念还没有完全了解完全,但是它的核心是处理和存储大数据,需要在虚拟机上面进行系统的测试

2024暑假第二周总结

运算符总结 对字面量或者变量进行操作的符号 算数运算符 加 减 乘 除 取模 取余 加减乘 public class yunsuanfu {public static void main(String[] args) {//+System.out.println(3+2);//5//-System.out.println(3-2);//1//*System.out.println(2*2);//4//如果计算的时候有小…

周总结

这周主要练习springboot3+vue3,开发大事件系统,Hadoop还未开始学,计划完成大事件开发后冲击Hadoop,在这里主要说一下我后端的开发心里路程吧。 Spring Boot 是一种基于 Spring 框架的开发工具,它旨在简化 Spring 应用程序的开发和部署过程。作为一名后端开发人员,我对 Sp…

Linux 中sed命令输出匹配字符的行号

001、[root@PC1 test]# ls a.txt [root@PC1 test]# cat a.txt ## 测试数 aa bbb dd ff 77 dd 22 44 77 88 cc dd ee ff [root@PC1 test]# sed -n /dd/p a.txt ## 输出匹配dd的行 dd ff 77 dd cc dd [root@PC1 test]# sed -n /dd/= a.txt ## 输出匹配字符的行号 2 3…

西华大学代做

目录西华大学代做拓扑图配置步骤PC配置接入交换机配置汇聚交换机配置核心交换机配置上联区配置公共服务区配置服务器区配置远程登录配置Internet区域配置B网 西华大学代做 拓扑图配置步骤 PC配置 vlan10和vlan20,对应192.168.10.0/24和192.168.20.0/24接入交换机配置 创建vlan…

从零学习的JAVAday8~day14

在安装eclipse时我们直接打开eclipse官网 我们点击下载并安装到合适的位置即可。 打开eclipse后我们就可以创建Java文件了 然后再创建一个Java类,这样我们就可以在里面写我们第一个java代码了 这就是我们的第一个代码,意思为输出“hello world”。 我们可以看到运行代码后输出…