linux命令详解,文件管理类

文件管理

stat

  • 显示文件的详细信息,包括时间戳
stat filename

image.png

touch

主要用于更新文件的访问时间和修改时间(时间戳)。如果指定的文件不存在,touch 命令会创建一个新的空文件。

touch newfile

参数

-t 更新文件的修改时间为特地的值,也会一起更新访问时间,和修改时间相等
-a 仅更新文件的访问时间
-r 使用参考文件的时间戳更新目标文件
-m 仅更新修改时间
  1. 创建多个新文件:
touch file1.txt file2.txt

image.png

  1. 更新文件的修改时间为特定时间:
touch -t 202310121530 file.txt

image.png

  1. 使用参考文件的时间戳更新目标文件:
 touch -r referencefile.txt targetfile.txt

image.png

  1. 仅更新文件的访问时间:
touch -a file.txt

image.png

  1. 仅更新文件的修改时间:
touch -m file.txt

image.png

  1. 使用自然语言描述的日期和时间:
touch -d "yesterday 12:00" file.txt
访问时间和修改时间设置为昨天中午12点

image.png

rm

rm newfile 

删除多个文件

rm 1.txt 2.txt

image.png
删除目录

rm -r newdir 递归删除所有文件目录及其内容
rm -rf newdir 递归强制删除所有目录及其内容

image.png

mkdir

mkdir newdir
mkdir adir bdir 创建多个目录
mkdir -p path/to/directory 递归创建多级目录。如果中间的某个目录不存在,mkdir会自动创建这些目录

image.png

-v 显示详细信息
-vp 递归创建显示详细信息

image.png
设置目录权限

mkdir -m 755 mydir

创建一个名为 mydir 的目录,并将其权限设置为 755(即所有者有读、写、执行权限,组用户和其他用户有读和执行权限)。
image.png

rmdir

rm 命令不同,rmdir 只能删除空目录,不能删除包含文件或子目录的目录

rmdir newdir
rmdir dir1 dir2 dir3 删除多个目录
rmdir -p path/to/directory 递归删除多级空目录。如果父目录变为空,也会被删除

image.png

mv

用于移动文件和目录,也可以用来重命名文件和目录

mv file1.txt file2.txt

这条命令将当前目录下的 file1.txt 重命名为 file2.txt。如果 file2.txt 已经存在,它会被覆盖
image.png

  1. 不覆盖模式移动文件:
 mv -n file1.txt file2.txt

如果 file2.txt 已经存在,不会覆盖,也不会提示。
2. 强制移动文件:

mv -f file1.txt file2.txt

即使 file2.txt 已经存在,也会直接覆盖,不会提示确认。
2. 更新模式移动文件:

 mv -u file1.txt file2.txt

只有当 file1.txtfile2.txt 新或 file2.txt 不存在时,才会移动。
参数
-i: 交互模式,如果目标文件或目录已经存在,会提示确认是否覆盖
-v: 显示详细信息,显示移动或重命名的每个文件或目录

cp

cp file.txt newwdir.txt

cp [选项]... 源文件 目标文件 
cp [选项]... 源文件... 目录

参数

  • -i 或 --interactive:在覆盖已存在的文件之前提示用户。
  • -r-R--recursive:递归地复制目录及其子目录下的所有文件。如果目标是一个目录,则会将源目录下的所有内容复制到该目录下。
  • -u--update:仅当目标文件比源文件旧,或目标文件不存在时才进行复制。
  • -v--verbose:显示详细的处理信息,比如复制了哪些文件。
  • -a--archive:归档模式,等同于 -dR --preserve=all,用于保持原始文件的所有属性(如权限、时间戳等)。
  • -f--force:如果目标文件无法打开或写入,则删除它并尝试再次复制。
  • -p:保留源文件或目录的属性(如修改时间、访问时间和权限)。
  1. 复制多个文件到一个目录
cp file1.txt file2.txt /path/to/destination/

这里,file1.txtfile2.txt 都会被复制到 /path/to/destination/ 目录下。
image.png

  1. 递归复制目录
cp -r directory/ newdirectory/

这个命令将 directory/ 及其所有内容复制到新的 newdirectory/ 中。
image.png

  1. 更新模式复制
cp -u source.txt destination.txt

只有当 source.txtdestination.txt 新或 destination.txt 不存在时,才会执行复制操作。
image.png

ln

链接分为两种类型:硬链接(hard link)和符号链接(symbolic link,也称软链接)。下面详细介绍 ln 命令的用法和选项。

基本语法
ln [选项]... 源文件 目标文件
ln [选项]... 源文件... 目标目录
参数
  • -s--symbolic:创建符号链接(软链接)而不是硬链接。
  • -f--force:如果目标文件已经存在,则删除目标文件后创建链接。
  • -i--interactive:在覆盖已存在的文件之前提示用户。
  • -v--verbose:显示详细的处理信息。
  • -n--no-dereference:当目标是一个符号链接时,不会跟随符号链接的目标,而是直接替换符号链接本身。

链接类型

  1. 硬链接

    • 硬链接是指向同一个 inode(索引节点)的多个文件名。每个硬链接都是一个独立的文件名,但它们共享相同的数据。
    • 硬链接不能跨文件系统创建,也不能指向目录。
  2. 符号链接(软链接)

    -软连接是一个特殊的文件,它包含了一个路径,指向另一个文件或目录。
    -软连接可以跨文件系统创建,并且可以指向目录。

软连接
ln -s original.txt symlink.txt

image.png

注意事项

  • 软连接可以跨文件系统创建。
  • 软连接可以指向目录。
  • 删除源文件会使符号链接失效(成为“断链”)。
硬链接
ln ~/offsec123.txt hardlink.txt

~/offsec123.txt:源文件的路径。~ 表示当前用户的主目录。hardlink.txt:创建的硬链接的名称。
image.png

主要事项

  • 硬链接不能跨文件系统创建。
  • 硬链接不能指向目录。
  • 删除源文件不会影响硬链接,因为它们共享同一个 inode。
示例
  1. 创建硬链接
ln file.txt hardlink.txt

这条命令将在当前目录下创建一个名为 hardlink.txt 的硬链接,指向 file.txt

  1. 创建符号链接
ln -s /path/to/file.txt symlink.txt

这条命令将在当前目录下创建一个名为 symlink.txt 的符号链接,指向 /path/to/file.txt
3. 强制创建符号链接

ln -sf /path/to/file.txt existing_symlink.txt

如果 existing_symlink.txt 已经存在,这条命令会先删除它,然后创建一个新的符号链接。
4. 在目录中创建多个链接

ln file1.txt file2.txt /path/to/directory/

这条命令将在 /path/to/directory/ 目录下创建 file1.txtfile2.txt 的硬链接。
image.png

  1. 创建指向目录的符号链接
ln -s /path/to/source_directory /path/to/link_directory
  • 连接文件夹需要自己创建
    这条命令将在 /path/to/link_directory 创建一个符号链接,指向 /path/to/source_directory
    image.png

文件读取

cat

首先是最常见的,那就是cat了,用于连接文件并打印到标准输出设备上,用法为:

cat /f*

不需要完整文件名

tac

用于将文件以行为单位的反序输出,用法为:

tac /f*

不需要完整文件名

more/bzmore

类似cat命令,会以一页一页的显示,方便使用者逐页阅读,用法为

more /f* 
bzmore /f*

不需要完整文件名

less/bzless

作用与more类似,都用来浏览文本文件中的内容,不同之处在于,使用 more 命令浏览文件内容时,只能不断向后翻看,而使用 less 命令浏览,既可以向后翻看,也可以向前看。用法为:

less /f*
bzless /f*

不需要完整文件名

head

head 命令可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容。用法为:

head /f*

不需要完整文件名

tail

作用和head相似,但它默认显示最后 10 行。用法为:

tail /f*

不需要完整文件名

nl

可以为输出列加上编号。用法为:

nl /f*

不需要完整文件名

sed

Sed 代表流编辑器Stream Editor,常用于 Linux 中基本的文本处理.用法为:

sed p /f*

不需要完整文件名

sort

用于将文本文件内容加以排序。用法为:

sort /f*

不需要完整文件名

uniq

删除文件中的连续重复行 如果你在不使用任何参数的情况下使用 uniq 命令,它将删除所有连续的重复行,只显示唯一的行。用法为:

uniq /f*

不需要完整文件名

rev

反转一个或多个文件的行。用法为

rev /f*

不需要完整文件名,获得的是逆序的flag
当然,我们可以使用rev /f* | rev获得正序的flag:

od

od(Octal Dump)命令用于将指定文件内容以八进制、十进制、十六进制、浮点格式或 ASCII 编码字符方式显示,系统默认的显示方式是八进制。用法为:

od -c /f*

不需要完整文件名
你可能会奇怪中间那个0000020是啥,我们可以看到这个命令在linux里的运行结果:
左边一列其实是它的地址,记得把地址0000020删了就是文件内容了,当然直接f12也可以看到linux里那样的运行结果:

vim/vi

这俩都是Linux里的文件编辑器,我们在网页直接用system(“vim /f*”);虽然不会进入编辑模式但还是可以看到里面的内容。用法为:

vim /f* 
vi /f*

不需要完整文件名

man

man 命令是 Linux 下的帮助指令,通过 man 指令可以查看 Linux 中的指令帮助、配置文件帮助和编程帮助等信息,类似于vim/vi,直接对文本运行可以看到文本内容。用法为:

man /f*

不需要完整文件名

paste

使用paste命令可以将每个指定文件里的每一行整合到对应一行里写到标准输出,之间用制表符分隔。用法为:

paste /f*

不需要完整文件名

grep

查找文件里符合条件的字符串。用法为:

grep { /f*

不需要完整文件名

file

查看文件信息或类型。用法为:

file -f /f*

不需要完整文件名

dd

用于读取、转换并输出数据。用法为:

dd if=/flag

需要完整文件名

date

使用指定格式显示时间,或者设置系统时间,有时用于suid提权。用法为:

date -f /f*

不需要完整文件名。但他本质上是一种报错读取,直接system传值是没回显的,我们要读取报错才行:

a=$(date -f /f* 2>&1);echo $a;

然后再编一下码:

a%3D%24(date%20-f%20%2Ff*%202%3E%261)%3Becho%20%24a%3B
报错读取

linux里可以用点号执行shell脚本,同样,我们也可以用这种方法报错读取文件内容,前提是你的用户组有读取文件的权限

a=$(. /f* 2>&1);echo $a;   #a%3D%24(.%20%2Ff*%202%3E%261)%3Becho%20%24a%3B

如果你的用户组有执行文件的权限,你可以直接/f*获得文件内容:

a=$(/f* 2>&1);echo $a;  #a%3D%24(%2Ff*%202%3E%261)%3Becho%20%24a%3B
diff

用于比较文件的内容,我们可以把想读取的文件内容和一个已知的文件进行比较,获得差集也就是我们想要的内容了,如:

diff /f* /etc/passwd

不需要完整文件名

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL的其他函数

数学函数: 1.round 四舍五入 select round(1.45);//不管正负数,先将绝对值round,然后加正负号 select round(1.567,2); //表示小数点保留2位 2.ceil 向上取整 select ceil(-1.3); 3.floor 向下取整 4.truncate 截断 select truncate(1.65,1); // 结果保留小数…

@Excel若依导出异常/解决BusinessBaseEntity里面的字段不支持导出

今天发现所有实体类继承BusinessBaseEntity里面的这些通用字段不支持导出,debug时发现是这样: 导出效果 这里我把能查到的方法都汇总了,如果你也遇到这个异常,可以去逐步排查 1.先看库里有没有数据 2.看字段名是否对齐 3.所需要…

云数据中心基础环境-详细设计方案(364页WORD)

文档介绍: 随着云计算技术的飞速发展,云数据中心已成为企业数字化转型的核心基础设施,承载着数据存储、处理、分析和应用的重任。本设计方案旨在构建一个高性能、高可用、高安全性的云数据中心基础环境,以满足企业日益增长的业务需…

在 CSS 中,gap 是 布局容器(flex 或 grid)的属性。它用于设置容器内子元素之间的间距。

在 CSS 中,gap 是 布局容器(flex 或 grid)的属性。它用于设置容器内子元素之间的间距。以下是 gap 属性在不同布局中的应用: 1. 在 CSS Grid 布局中 gap 定义了网格行和列之间的间距。可以分别使用 row-gap 和 column-gap 设置行…

Python练习9

Python日常练习 题目: 编程序计算形式如:sumaaaaaaaaaa…aaa…aaa的表达式的值。 说明: 补充完整函数fun(),其中a为小于10的自然数,n为项数,给定 变量result作为函数返回值,变量ts作为…

浙江深大智能科技有限公司管控平台服务端存在任意文件上传漏洞

漏洞描述 智游宝是连接景区与分销商(OTA、旅行社)的公正、权威、可信的第三方服务平台。作为国内智慧景区第三方技术服务支撑平台,智游宝为景区提供了可控制分销商的管理环境,安全、便捷、高效地实现了电子票的生产、发送、检票、退换票以及票款回收等技…

Pr 视频过渡:沉浸式视频 - VR 默比乌斯缩放

效果面板/视频过渡/沉浸式视频/VR 默比乌斯缩放 Video Transitions/Immersive Video/VR Mobius Zoom VR 默比乌斯缩放 VR Mobius Zoom用于 VR 视频中的缩放式场景切换,通过缩小或放大的渐变效果在两个场景之间平滑过渡。 自动 VR 属性 Auto VR Properties 默认勾选…

Hive操作库、操作表及数据仓库的简单介绍

数据仓库和数据库 数据库和数仓区别 数据库与数据仓库的区别实际讲的是OLTP与OLAP的区别 操作型处理(数据库),叫联机事务处理OLTP(On-Line Transaction Processing),也可以称面向用户交易的处理系统,它是针对具体业务…

ssm063基于SSM框架的德云社票务系统的设计与实现+vue(论文+源码)_kaic

毕业设计(论文) 题 目: 基于SSM框架的德云社票务系统 专 题: 学 院: 班 级: …

基于vue框架的的民宿网站30lx7(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:用户,客房类型,民宿信息,民宿预订,民宿退订,续租信息,换房信息 开题报告内容 开题报告 题目:基于Vue框架的民宿网站开发 一、立论依据 选题背景与意义 随着旅游业的快速发展,民宿作为一种独特的住宿方式&…

Kubernetes的基本构建块和最小可调度单元pod-0

文章目录 一,什么是pod1.1pod在k8s中使用方法(1)使用方法一(2)使用方法二 1.2pod中容器的进程1.3pod的网络隔离管理(1)pause容器的作用 1.4 Pod分类:(1)自主式…

Centos Linux 7 搭建邮件服务器(postfix + dovecot)

准备工作 1. 一台公网服务器(需要不被服务商限制发件收件的,也就是端口25、110、143、465、587、993、995不被限制),如有防火墙或安全组需要把这些端口开放 2. 一个域名,最好是com cn org的一级域名 3. 域名备案&am…

【论文翻译】TKDE 2024 | ST-MAN:用于交通预测的时空记忆增强的多级注意力网络

论文题目Spatio-Temporal Memory Augmented Multi-Level Attention Network for Traffic Prediction论文链接https://ieeexplore.ieee.org/document/10285880发表期刊/年份TKDE 2024关键词城市计算、时空预测、交通预测、记忆网络、注意力网络 摘要 交通预测是城市计算中一个重…

【每日一题】2009考研数据结构 - 求倒数第k个数的值

已知一个带有表头结点的单链表,结点结构为 data 和 link。假设该链表只给出了头指针 list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第 k 个位置上的结点(k 为正整数)。 要求: 若…

ELF加载,进程地址空间与可执行程序的关系

1,可执行程序的格式 粗略概况 操作系统要如何认识可执行程序?我们的可执行程序是有格式的: 用指令size 加可执行程序名: 其中test就是代码块,data就是数据块,不仅可执行程序有格式,动态库&am…

超实惠的租借服务器训练深度学习方法

1. 必备软件 1.1 Xftp和Xshell 通过百度网盘分享的文件:Niha 链接:https://pan.baidu.com/s/1uHLme7H9SL2C-ZhFr107gA?pwdnadb 提取码:nadb xftp用于连接服务器, 传输本地文件到服务器上面去。 xshell用于连接服务器进行命令操作 2 恒源…

蓝桥杯-网络安全比赛题目-遗漏的压缩包

小蓝同学给你发来了他自己开发的网站链接, 他说他故意留下了一个压缩包文件,里面有网站的源代码, 他想考验一下你的网络安全技能。 (点击“下发赛题”后,你将得到一个http链接。如果该链接自动跳转到https,…

MongoDB笔记03-MongoDB索引

文章目录 一、前言1.1 概述1.2 MongoDB索引使用B-Tree还是BTree?1.3 B 树和 B 树的对比1.4 总结 二、索引的类型2.1 单字段索引2.2 复合索引2.3 其他索引 三、索引的管理操作3.1 索引的查看3.2 索引的创建3.2.1 单字段索引3.2.2 复合索引 3.3 索引的移除3.3.1 指定索…

【Android】时区规则库tzdata更新

1 背景: 最近我遇到墨西哥城时区,会出现夏令时,而墨西哥城在2022年底都已经取消夏令时了。 看起来是要更新RK3588上的时区库,我的还是2021a,而现在都已经2024年了 这样能看版本号: cat /system/usr/sha…

网络初始:TCP/IP 五层协议模型 网络通信基本流程

目录 1. 名词解释 1.1 局域网 1.2 广域网 1.3 交换机 1.4 IP 地址 1.5 端口号 2. 协议 2.1 认识协议 2.2 五元组 3. 协议分层 3.1 分层的作用 3.2 OSI 七层网络模型 & TCP/IP 五层(四层)协议模型 4. TCP/IP 五层(四层)网络模型 4.1 物理层 4.2 数据链路层 4…