Bootstrap

[ Linux 命令基础 3 ] Linux 命令详解-文件和目录管理命令

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

我们搞网络安全需要经常用到 linux 命令,比用拿到 linux 的 shell,需要使用 linux 命令。再比如 sh 脚本,我们经常需要使用。这里我将开始详细介绍一些常用的 linux 命令。本文讲解与文件和目录管理相关的命令。
在这里插入图片描述

文章目录

3.1 基础命令

3.1.1 pwd

3.1.1.1 基本功能

获取当前所在目录.

3.1.1.2 基本语法
pwd

3.1.2 ls

3.1.2.1 基本功能

列出指定目录中的文件和子目录

3.1.2.2 基本语法
ls [选项]
3.1.2.3 常用选项
  • -l: 以长格式显示,包括文件的权限、所有者、大小和修改时间。
  • -a: 显示所有文件,包括隐藏文件
  • -h: 以易读的单位显示文件大小。
  • -R:递归的列出目录及其所有子目录的内容。

3.1.3 cd

3.1.3.1 基本功能

改变当前工作目录。

3.1.2.2 基本语法
cd path
3.1.2.3 常用用法:
  • cd <directory>:改变当前工作目录到指定的 <directory>
  • cd ~cd:回到当前用户的主目录。
  • cd -:返回到前一个工作目录。
  • cd ..:移动到上一级目录。

3.1.4 mv

3.1.4.1 基本功能

mv命令是Unix和Linx系统中用于移动文件或目录的命令,它也是重命名文件或目录的主要工具。

3.1.4.2 基本语法
mv [选项] source target
  • source: 要移动或重命名的文件或目录。
  • target: 目标位置或新的名称
3.1.4.3 常用选项
  • -i: 交互模式。在覆盖文件时提示用户确认。
  • -f: 强制模式
  • -n: 不覆盖已存在的文件。
  • -v: 详细模式。显示移动或重命名操作的详细信息。
  • -u: 仅当源文件比目标文件新或目标文件不存在时移动。
3.1.4.4 高级用法

1.批量移动文件

mv *.txt /tmp

2.在移动文件时创建备份

mv --backup file1.txt /tmp

3.备份文件指定自定义后缀

mv --backup -S .bak file1.txt /tmp

3.2 文件管理

3.2.1 touch

3.2.1.1 基本功能

用户创建空文件和修改文件的时间戳。

3.2.1.2 基本语法
touch [option] file

如果文件存在,打开之后默认会修改执行时间和修改时间。

3.2.1.3 常用选项
  • -a: 仅修改文件的访问时间
  • -m: 仅修改文件的修改时间
  • -c--no-create: 如果文件不存在则创建文件。
  • -d: 使用指定的日期时间而不是当前时间。
3.2.1.4 使用示例

1.仅修改文件的访问时间

touch -a filename

2.仅修改文件的修改时间

touch -m filename

3.使用指定时间,而不是当前时间

touch -d "2023-01-01 12:34:56" filename

3.2.2 rm

3.2.2.1 基本功能

用于删除文件和目录的命令。可以永久删除文件和目录而无法恢复。

3.2.2.2 基本语法
rm [options] file...
3.2.2.3 常用选项
  • -f: 强制删除文件或目录,不提示确认
  • -i: 交互式移除
  • -r,-R.--recursive: 递归删除目录及其内容。
  • -d: 删除空目录。
  • -v: 详细模式,显示删除文件和目录。

3.3 目录管理

3.3.1 mkdir

3.3.1.1 基本功能

用于创建目录的命令

3.3.1.2 基本语法
mkdir [选项] directory..
3.3.13 常用选项:
  • -p,--parents: 创建目录时,必要时创建其父目录,如果目录已经存在,不会报错。
  • -v: 详细模式,显示创建的目录
  • -m, --mode=MODE : 创建目录并设置目录权限

3.3.2 rmdir

3.3.2.1 基本功能

用于删除空目录

3.3.2.2 基本语法

rmdir [options] directory
3.3.2.3 常用选项
  • -p, --parents: 递归删除目录及其子目录
  • -v: 详细模式,显示要删除的目录
  • --ignore-fail-on-non-empty: 忽略非空目录导致的错误,不会进行删除。

3.4 复制文件和目录

3.4.1 cp

3.4.1.1 基本功能

用户复制文件和目录的命令。

3.4.1.2 基本语法

1.基本语法

cp [options] source destination

2.一次复制多个文件

cp [options] source ... directory
3.4.1.3 常用选项
  • -a, --archive: 递归复制目录,并尽可能保持文件属性。相当于 -dR --preserve=all
  • -r,-R,--recursive: 递归复制目录及其内容。
  • -f: 强制覆盖目标文件
  • -i, --interactive: 覆盖目标文件前提示确认。
  • -u, --update: 仅当源文件比目标文件新或目标文件不存在时复制
  • -p: 保持文件属性,如模式、所有权、时间戳等

3.4.2 scp

3.4.2.1 基本功能

用于在Unxi类系统之间安全的复制文件和目录, 用于在本地和远程主机之间。scp命令使用SSH协议来进行数据传输,并提供加密功能,确保数据在传输过程中不被窃听或篡改.

3.4.2.2 基本语法
scp [options] source destination
  • source: 要复制的文件或目录,格式可以是[user@host:/path 或本地目录.
  • destination: 目标文件或目录, 格式可以是[user@host:/path 或本地目录.
3.4.2.3 常用选项:
  • -r: 递归复制整个目录。
  • -P: 指定远程主机的SSH目录
  • -i: 指定用于认证的私钥文件
  • -C: 启用压缩
  • -p: 保留文件的修改时间、访问时间和模式。

3.4.3 rsync

3.4.3.1 基本功能

强大的文件同步和传输工具,用于在本地和远程主机之间高校地复制和同步文件和目录。支持增量传输、压缩、保留文件属性和权限等多种功能。

3.4.3.2 基本语法
rsync [option] source destination
  • source:源文件或目录。
  • destination:目标文件或目录。可以是本地路径或远程路径(使用 user@host:/path 格式)
3.4.3.3 常用选项
  • -a, --archive: 归档模式,递归复制目录,并保留文件属性。
  • -z, --compress: 在传输过程中启用压缩。
  • -P: 显示传输进度并保留部分传输地文件。
  • --delete: 在目标中删除源不存在地文件。
  • -e: 指定远程shell程序。
  • --exclude=PATTERN: 排除匹配模式地文件或目录。
  • --bwlimit=RATE: 限制传输带宽

3.5 文件查找

3.5.1 find

3.5.1.1 基本功能

用于搜索文件和目录地命令。支持根据各种条件查找文件和目录,如类型、名称、大小、修改时间,并可以对找到的文件执行操作。

3.5.1.2 基本语法
find [path....] [expression]
  • path: 指定要搜索的目录路径,默认是当前目录。
  • expression: 搜索条件和操作。
3.5.1.3 常用选项和表达式:
  • -name pattern: 查找名称匹配pattern的文件和目录(区分大小写)
  • -iname pattern: 查找名称匹配pattern的文件和目录(不区分大小写)
  • -type type: 按文件类型查找.f普通文件,d目录,l符号链接
  • -size n: 查找大小为n的文件,支持指定单位.- 小于,+ 大于。
  • -mtime n: 查找在n天前到现在修改的文件。
  • -atime n: 查找在n天前访问的文件
  • -ctime n: 查找在n天前状态改变的文件。
  • -perm mode:按照权限匹配进行查找
  • -user username: 查找属于username用户的文件
  • -group groupname: 查找属于groupname组的文件。
  • 条件连接参数
    • -and/ -a: 与条件
    • -or / -o: 或条件
    • -not / !: 非条件
  • -exec command {} \;: 对找到的每个文件执行命令
  • -ok command {} \; : 类似-exec,但在执行前提示用户确认。
3.5.1.4 使用示例

1.查找 所有大小大于50MB的文件

find path -size +50M

2.查找最近7天内修改的文件

find path -mtime -7

3.查找当前目录中不以txt结尾的文件

find path -not -name "*.txt"

4.查找木下所有tmp结尾文件并删除

find path -name "*.tmp" and -type f -exec rm -rf {}  \;

3.5.2 locate

3.5.2.1 基本功能

是Unix和Linx系统中的一个快速文件查找工具。与find不同,locate使用的是预构建的数据库来查找文件,速度快。通常与updatedb命令配合使用,后者用于更新文件数据库。

updatedb: 更新文件数据库,通常由cron作业定期运行。通常每天运行一次,更新系统中所有文件的列表。

3.5.2.2 基本语法
locate [选项] pattern
3.5.2.3 常用参数:
  • -i: 忽略大小写
  • -r, --regexp REGEXP: 使用正则表达式进行搜索。
  • -c: 只显示匹配项的数量
  • -n, --limit,-l NUMBER: 限制输出的匹配项数量。
  • -0, --null: 用NUL字符(不是换行符)分隔输出的文件名
  • --existing: 仅显示当前存在的文件。数据库内容存在滞后性。

3.6 文件目录属性

3.6.1 chattr

3.6.1.1 基本功能

用于改变文件和目录的属性。

3.6.1.2 基本语法
chattr [options] mode file...
  • mode: 要设置的文件属性.+增加属性、-移除属性或=直接设置属性。
3.6.1.3 常用选项:
  • -R, --recursive: 递归的改变目录及其内容的属性。
  • -V: 显示命令执行过程中的详细信息。
    常用文件属性:
  • a: 追加模式。只允许对文件进行追加操作。
  • i: 不可变模式,不允许对文件进行删除、修改、重命名或链接操作。
  • d: 对文件备份时忽略该文件。
  • s: 安全删除模式,文件内容将被安全删除而不是简单的删除。
  • u: 可恢复删除模式,文件被删除后可以恢复。
3.6.1.4 使用示例

1.递归目录dir及其所有内容为不可变

chattr -R +i dir

3.6.2 lsattr命令

3.6.2.1 基本功能

用于显示文件或目录的属性

3.6.2.2 基本语法
lsattr [options] [files]
3.6.2.3 常用选项:
  • -R: 递归的显示目录及其内容的属性。
  • -a: 显示包括隐藏文件在内的所有文件属性。
  • -d: 显示目录自身的属性而非其内容的属性

3.7 打包与解压缩

3.7.1 tar

3.7.1.1 基本功能

创建、提取和管理归档文件的命令,最常用于打包和解压文件。

3.7.1.2 基本语法
tar [options] [archive-file] [file or directory]
  • archive-file: 要创建或提取的归档文件。
3.7.1.3 常用选项:
  • -c , --create: 创建一个新的归档文件。
  • -x, --get, --extract: 从归档文件中提取文件。
  • -t: 列出归档文件的内容
  • -z,--gzip: 使用gzip压缩
  • -j, --bzip2: 使用bzip2压缩
  • -J,--xz: 使用xz压缩
  • -r, --append: 向现有归档文件中追加文件
  • -u,--update: 仅将比归档文件中的文件更新或新的文件追加到归档文件中
  • -excluete=PATTERN:排除与PATTERN匹配的文件
  • -f: 指定归档文件名
  • -v: 显示处理过程中的详细信息
  • -k: 提取归档文件时,如果目标路径已存在同名文件,这些文件将被覆盖
3.7.1.4 常用示例

1.向现有的tar归档文件中追加文件

tar -rvf archive.tar newfile

2.递归的将更新的文件追加到tar归档文件中

tar -uvf archive.tar file1 file2

3.7.2 zip 与unzip

3.7.2.1 zip

基本功能

用于创建ZIP压缩文件并将文件或目录添加到ZIP文件中 。

基本语法

zip [options] zipfile files
  • zipfile: 要创建的ZIP文件名。
  • files: 要添加到ZIP文件中的文件或目录

常用选项

  • -r: 递归的添加目录及其内容
  • -u: 更新现有ZIP文件中的文件。
  • -d: 从ZIP文件中删除指定文件
  • -m:将文件添加到ZIP文件后删除原文件。
  • -x: 排除匹配模式的文件
  • -e: 加密压缩文件,提示用户输入密码
  • -v: 显示详细信息,包括压缩比和文件信息

使用示例

# 递归压缩目录
zip -r archive.zip mydir
# 将更新后的文件添加到已有zip文件中
zip -u archive.zip file1 file2
# 从zip文件中删除文件
zip -d archive.zip file1 file2
3.7.2.2 unzip命令

基本功能

用于解压缩ZIP文件。

基本语法

unzip [options] zipfile

常用选项

  • -l: 列出ZIP文件的内容。
  • -v: 显示ZIP文件的详细信息。
  • -t: 测试ZIP文件的完整性
  • -d: 指定解压缩的目标目录
  • -o: 覆盖现有文件而不提示。
  • -n: 不覆盖现有文件
  • -x: 排除解压缩的文件

使用示例

# 指定解压目录
unzip archive.zip -d /path/to/destination
# 解压并覆盖
unzip -o archive.zip
# 排除特定文件
unzip archive.zip -x file1 file2

3.7.3 gzip 与 gunzip

3.7.3.1 gzip

基本功能

基本介绍:

gzip(GNU zip)是一种在Linux系统中常见的命令行压缩工具,使用DEFLATE压缩算法来减小文件的大小。它主要用于压缩文本文件、Tar归档文件和网页,不建议用于压缩图像、音频、PDF文档和其他已经压缩的二进制文件。

工作原理:

gzip使用的DEFLATE算法结合了LZ77和哈夫曼编码的优点,通过查找和替换重复的字节序列来压缩数据。

基本语法

gzip [选项] 文件

常用选项

  • -d:解压缩文件。
  • -f:强制压缩或解压文件。
  • -r:递归处理子目录。
  • -t:测试压缩文件完整性。
  • -v:显示压缩比率和统计信息。
  • -k:保留原始文件。
  • -c:将解压缩后的数据输出到标准输出。

使用示例

1.压缩单个文件:

gzip filename

2.解压缩文件:

gzip -d filename.gz

3.递归压缩目录:

gzip -r directoryname
3.7.3.2 gunzip

基本功能

gunzip是一个用于解压缩使用gzip命令压缩的文件的命令行工具,这些压缩文件预设最后的扩展名为 .gz。事实上,gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。

基本语法

gunzip [选项] 文件

常用选项

  • -c:将解压缩后的数据输出到标准输出。
  • -d:解压缩文件(默认行为)。
  • -f:强制解压缩,即使已存在同名的解压缩文件。
  • -l:显示压缩文件的详细信息。
  • -n:不覆盖已存在的解压缩文件。
  • -q:静默模式,不显示解压缩进度和错误信息。
  • -r:递归地解压缩指定目录下的所有文件。
  • -t:测试压缩文件的完整性,而不进行实际的解压缩操作。
  • -v:显示详细的解压缩信息。

使用示例

1.解压缩文件:

gunzip example.txt.gz

2.解压缩并保留原始文件:

gunzip -k example.txt.gz

3.递归解压缩目录:

gunzip -r directoryname

3.7.4 bzip2 与 bunzip2

3.7.4.1 bzip2

基本介绍

bzip2是一个用于创建和管理“.bz2”格式压缩包的命令。它采用Burrows-Wheeler块排序文本压缩算法和Huffman编码,提供了高压缩比。

安装方式:

  • Debian/Ubuntu系统:sudo apt install bzip2
  • Alpine系统:sudo apk add bzip2
  • Arch Linux系统:sudo pacman -S bzip2
  • RedHat/CentOS系统:sudo yum install bzip2
  • Fedora系统:sudo dnf install bzip2

基本语法

bzip2 [选项] 文件

常用选项

  • -c或--stdout:将压缩与解压缩的结果送到标准输出。
  • -d或--decompress:执行解压缩。
  • -f或--force:覆盖现有文件而不提示。
  • -k或--keep:保留原始文件。
  • -s或--small:降低内存使用量。
  • -t或--test:测试压缩文件的完整性。
  • -v或--verbose:显示详细信息。
  • -z或--compress:强制执行压缩。
  • -L,--license,-V或--version:显示版本信息。
  • --repetitive-best:提高重复数据的压缩效果。
  • --repetitive-fast:加快重复数据的处理速度。
  • -<1-9>:设置压缩级别(1最快,9最高)。

使用示例

1.压缩单个文件

bzip2 filename

2.强制压缩文件

bzip2 -z filename

3.压缩文件时输出结果信息

bzip2 -v filename

4.压缩并保留原始文件

bzip2 -k filename

5.解压缩文件

bzip2 -d filename.bz2

6.模拟解压(不实际解压)

bzip2 -tv filename.bz2
3.7.4.2 bunzip2

基本介绍

bunzip2是专门用于解压缩“.bz2”格式文件的命令,实际上是bzip2命令的一个符号连接(软链接),因此其效果与执行“bzip2 -d”相同。

基本语法

bunzip2 [选项] 文件

常用选项

  • -f或--force:强制覆盖已存在的文件。
  • -k或--keep:保留原始压缩文件。
  • -s或--small:降低解压缩时的内存使用量。
  • -v或--verbose:显示详细的解压缩信息。
  • -l,--license,-V或--version:显示版本信息。

使用示例

1.解压“.bz2”文件

bunzip2 filename.bz2

2.解压多个“.bz2”文件

bunzip2 file1.bz2 file2.bz2 file3.bz2

3.解压文件到指定目录

bunzip2 -c filename.bz2 > /path/to/target_directory/filename

4.检查文件完整性(不解压缩)

bunzip2 -t filename.bz2

3.7.5 xz 与 unxz

3.7.5.1 xz

基本介绍

定义:xz是一种高效的压缩文件格式,它采用LZMA或LZMA2算法进行数据压缩。这种格式的文件通常具有更高的压缩比,意味着相同数据量的.xz文件比其他压缩格式(如gzip、bzip2)的文件更小。xz是一个用于压缩和解压缩文件的命令,它基于LZMA算法家族。

特点:

  • 高压缩比:xz格式的文件通常比普通gzip文件小30%,比bzip2文件小15%。
  • 多线程支持:xz命令支持多线程压缩和解压缩,提高了处理效率。
  • 多种过滤器:xz支持多个过滤器和链接,可以进行复杂的数据处理和转换。

使用:在Linux系统中,可以使用xz命令来压缩和解压缩文件。例如,xz file.txt将file.txt压缩为file.txt.xz,而xz -d file.txt.xz则将其解压缩回file.txt。

安装:如果系统上没有预装xz工具,可以通过包管理器进行安装。例如,在CentOS或RHEL上,可以使用yum install epel-release && yum install xz;在Debian或Ubuntu上,可以使用sudo apt-get install xz-utils

基本语法

压缩文件:xz [选项] 文件名
解压缩文件:xz -d [选项] 文件名.xz

常用选项

  • -c <目录>:将压缩文件解压到指定目录。
  • -d:解压缩文件。
  • -k:保留源文件,即压缩后不删除源文件。
  • -q:静默模式,只显示错误信息。
  • -v:显示详细信息。
  • -L, –lzma1:使用LZMA1算法进行压缩和解压缩(默认)。
  • -0, –lzma:使用LZMA2算法进行压缩和解压缩。
  • -t, –test:测试压缩文件是否正确,不进行解压缩操作。
  • -T, –threads=num:指定使用的CPU线程数。
  • -C, –check=type:指定检查压缩文件完整性的方式。

使用示例

1.压缩文件

xz file.txt

2.解压缩文件

xz -d file.txt.xz

3.保留原始文件并压缩

xz -k file.txt

4.测试压缩文件的完整性

xz -t file.txt.xz

5.使用多个CPU线程进行压缩

xz -T 4 file.txt

6.使用SHA256算法检查压缩文件完整性

xz -C sha256 file.txt.xz
3.7.5.2 unxz

基本介绍

定义:unxz是一个用于解压.xz文件的命令行工具。它通常是xz工具包的一部分,或者可以单独安装。unxz是用来解压由xz命令压缩的文件,等价于xz -d

功能:unxz的主要功能是将.xz格式的压缩文件解压为其原始形式。它支持多线程解压,并且可以根据需要设置最大内存使用量以提高解压效率。

使用:使用unxz解压文件的基本命令是unxz file.xz,这将解压file.xz并生成原始文件。

安装:与xz类似,如果系统上没有预装unxz工具,也可以通过包管理器进行安装。在某些Linux发行版中,unxz可能作为xz-utils包的一部分提供

基本语法

unxz [-c] 文件名.xz

常用选项

  • -c <目录>:将压缩文件解压到指定目录。
  • -d:解压缩文件。
  • -k:保留源文件,即压缩后不删除源文件。
  • -q:静默模式,只显示错误信息。
  • -v:显示详细信息。
  • -L, –lzma1:使用LZMA1算法进行压缩和解压缩(默认)。
  • -0, –lzma:使用LZMA2算法进行压缩和解压缩。
  • -t, –test:测试压缩文件是否正确,不进行解压缩操作。
  • -T, –threads=num:指定使用的CPU线程数。
  • -C, –check=type:指定检查压缩文件完整性的方式。

使用示例

1.解压缩文件

unxz file.txt.xz

相关资源

原稿下载地址
原稿其他方式获取-帖子评论区
shell脚本 从入门到精通
[ DOS 命令基础 ] DOS 命令详解-大集合
[ DOS 命令基础 1 ] DOS 命令命令详解-系统查询相关命令
[ DOS 命令基础 2 ] DOS 命令命令详解-网络相关命令
[ DOS 命令基础 3 ] DOS 命令命令详解-文件操作相关命令
[ DOS 命令基础 4 ] DOS 命令命令详解-端口进程相关命令
[ Linux 命令基础 ] Linux 命令详解-大集合
[ Linux 命令基础 1 ] Linux 命令详解-linux 命令前置知识
[ Linux 命令基础 2 ] Linux 命令详解-系统管理命令
[ Linux 命令基础 3 ] Linux 命令详解-文件和目录管理命令
[ Linux 命令基础 4 ] Linux 命令详解-文本处理命令
[ Linux 命令基础 5 ] Linux 命令详解-网络管理命令
[ Linux 命令基础 6 ] Linux 命令详解-权限和用户管理命令
[ Linux 命令基础 7 ] Linux 命令详解-磁盘管理相关命令

;