Linux系统中常用的文件操作命令

本章将和大家分享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

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

posted @ 2024-07-13 22:28  谢友海  阅读(756)  评论(0编辑  收藏  举报