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
版权声明:如有雷同纯属巧合,如有侵权请及时联系本人修改,谢谢!!!