一文读懂Linux运维常用命令之文件管理(上)

其他相关博文:

一文读懂Linux运维常用命令之文件管理(下)

一文读懂Linux运维常用命令之用户管理

目录

一、文件管理

1、ls

2、touch

(1)、创建空文件

(2)、更新文件的访问和修改时间

(3)、指定时间字符串更新文件的时间戳

(4)、指定时间字符串改变文件的修改时间(mtime)

3、rm

(1)、删除文件

(2)、删除目录

4、mv

(1)、修改文件名称

(2)、修改目录名称

(3)、移动文件

(4)、移动目录

5、cp

(1)、复制文件

1)复制文件

2)复制文件并重命名

(2)、复制目录

1)复制目录

2)复制目录并重命名

6、scp

(1)、复制文件至远程主机

(2)、复制目录至远程主机

(3)、复制远程主机的文件至本地

(4)、复制远程主机的目录至本地

7、find

(1)、精确查找文件

(2)、模糊查找文件

(3)、根据文件大小查找文件

(4)、根据时间查找文件

1)查找N天内修改过的文件

2)查找N天前修改过的文件

3)查找指定时间范围内的文件

(5)、查找文件后执行命令操作

8、du

(1)、显示指定文件的大小

(2)、显示指定目录的大小

(3)、显示指定目录下子目录及文件的大小

(4)、显示指定目录下所有子目录的大小

(5)、显示指定目录下的所有子目录及所有文件的大小

二、文件读取

1、cat

(1)、读取文件

(2)、读取文件并显示行号

(3)、合并文件

(4)、查看文件最后n行

2、tac

(1)、读取文件

(2)、查看文件前面n行

3、more

4、less

5、head

(1)、读取文件

(2)、读取文件前n行

6、tail

(1)、实时输出文件新增内容

(2)、输出文件最后n行

7、grep

(1)、单个字符串匹配

(2)、单个字符串匹配(忽略大小写)

(3)、单个字符串反向匹配

(4)、单个字符串匹配并打印行号

(5)、单个字符串匹配仅打印匹配行数

(6)、多个字符串匹配

(7)、递归查找目录

(8)、递归查找目录仅输出匹配的文件名称

(9)、标准输入获取内容并过滤输出指定行

三、文件夹管理

1、pwd

(1)、普通目录

(2)、链接目录

2、cd

(1)、切换到目录/data/Elasticsearch

(2)、切换到上级目录

(3)、切换到当前用户的主目录(home)

(4)、切换到上次访问的目录

3、mkdir

(1)、创建单个路径

(2)、同时创建多个路径

4、rmdir

(1)、删除一个空目录test

(2)、级联删除父目录


一、文件管理

1、ls

ls命令用来列出指定目录下的文件及子目录,如果不指定目录则列出当前目录下的文件及子目录。语法格式如下:

ls [选项] [路径或文件]

  • -a:列出指定目录下的所有文件及子目录,包含隐藏文件。Linux系统将“.”开头的文件或目录视为隐藏文件。

  • -A:显示除隐藏文件“.”和“..”以外的所有文件列表;

  • -l:列出指定目录下的文件及子目录的权限等详细信息,不包含隐藏文件。

  • -F:在每个输出项后追加特殊文件的类型标识符。具体含义为:“*”表示具有可执行权限的文件;“/”表示目录;“@”表示符号链接;“|”表示命令管道FIFO;“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符。

  • -c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的依据是文件的状态改变时间;

  • -i:显示文件索引节点号(inode),一个索引节点代表一个文件。

  • -m:用“,”号区隔每个文件和目录的名称;

  • -n:以用户识别码和群组识别码替代其名称;

  • -r:以文件名反序排列并输出目录内容列表;

  • -s:显示文件和目录的大小,以区块为单位;

  • -t:根据文件和目录的更改时间排序;

以上选项可以根据实际情况组合使用。

2、touch

touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,则会新建一个新的文件。语法格式如下:

touch [选项] [文件名称或目录名称]

  • -a:改变文件的访问时间(atime)。
  • -m:改变文件的修改时间(mtime)。
  • -d:使用指定的时间字符串来设置时间戳。例如:touch -d "2021-12-31 23:59:59" test.txt
  • -t:使用指定的时间格式(如[[CC]YY]MMDDhhmm[.ss])来设置时间戳。例如touch -t 202310011200.00 file.txt会将文件的时间戳设置为2023年10月1日12时0分。
  • -r:使用指定文件的时间戳来设置目标文件的时间戳。例如,touch -r test01.txt test02.txt会将test02.txt的时间戳设置为test02.txt的时间戳。
  • -c:如果文件不存在,不要创建新文件。

(1)、创建空文件

创建一个空文件test.txt

[elasticsearch@node01 data]$ touch test.txt
[elasticsearch@node01 data]$ ls -l

(2)、更新文件的访问和修改时间

更新test.txt的访问和修改时间为当前时间。

[elasticsearch@node01 data]$ touch test.txt

[elasticsearch@node01 data]$ ls -l

(3)、指定时间字符串更新文件的时间戳

更新文件test.txt的时间戳为2025-03-18 12:00:00

[elasticsearch@node01 data]$ touch -d "2025-03-18 12:00:00" test.txt

(4)、指定时间字符串改变文件的修改时间(mtime)

更新文件test.txt的修改时间为2025-03-18 14:30:00

[elasticsearch@node01 data]$ touch -md "2025-03-15 14:30:00" test.txt 
[elasticsearch@node01 data]$ ls -l

3、rm

rm命令用于删除一个文件或者目录,语法格式如下:

rm [选项] [文件或者目录命令]

  • -i:删除文件前逐一询问确认。
  • -f:强制删除文件。
  • -r:递归删除目录及目录中的文件。 

(1)、删除文件

删除文件test02.txt

  • 直接删除

[elasticsearch@node01 ~]$ rm test02.txt

  • 删除前确认

[elasticsearch@node01 ~]$ rm -i test02.txt

(2)、删除目录

删除目录必须加参数-r,否则无法删除。

删除目录data

[elasticsearch@node01 ~]$ rm -r data

4、mv

mv命令用于文件、目录更改名称,或者用于文件、目录移动位置,语法格式如下:

mv [选项] [源文件名称 | 源目录名称] [目标文件名称 | 目标目录名称]

  • -b:若目标文件或目标目录存在,则先备份再执行覆盖操作。
  • -i:若移动的源文件或源目录与目标文件或目标目录同名,则先询问是否覆盖。输入 y 表示覆盖,输入 n 表示取消操作。
  • -f:若移动的源文件或源目录与目标文件或目标目录同名,强制覆盖。
  • -n:不要覆盖任何已存在的文件或目录。

(1)、修改文件名称

修改文件test01.txt 为 test.txt

[root@node01 data]# mv test01.txt test.txt

(2)、修改目录名称

修改目录/root/data/data 为 /root/data/data_test

[root@node01 data]# mv /root/data/data /root/data/data_test

(3)、移动文件

移动文件/root/data/test.txt 至 目录/root/data/data_test/下

[root@node01 data_test]# mv /root/data/test.txt /root/data/data_test/

(4)、移动目录

移动目录/root/data/data_test/ 至 目录/root/下

[root@node01 ~]# mv /root/data/data_test/ /root/

5、cp

cp命令用于本地将文件或者目录复制到另一个目录下,语法格式如下:

cp [选项] [源文件名称 | 源目录名称] [目标文件名称 | 目标目录名称]

  • -r或-R:递归复制目录及其子内容(用于复制目录)。
  • -i:文件或目录覆盖前提示用户确认。
  • -f:强制覆盖目标文件或者目标目录。
  • -p:保留文件或者目录的原始属性(如权限、时间戳等)。

(1)、复制文件

1)复制文件

复制文件/root/data_test/test.txt 至 目录/root/下

[root@node01 ~]# cp /root/data_test/test.txt /root/

2)复制文件并重命名

复制文件/root/data_test/test.txt 为 /root/data_test/test01.txt

[root@node01 data_test]# cp /root/data_test/test.txt /root/data_test/test01.txt

(2)、复制目录

1)复制目录

复制目录/root/data_test/ 至 目录/root/data下

[root@node01 data]# cp -R /root/data_test/ /root/data

2)复制目录并重命名

复制目录/root/data_test/ 为 目录/root/data/data_bak

[root@node01 data]# cp -R /root/data_test/ /root/data/data_bak

6、scp

scp命令用于主机之间复制文件或者目录,语法格式如下:

scp [选项] [源文件名称 | 源目录名称] [username@remote_host:directory | username@remote_host:directory/filename]

  • -r:递归复制整个目录。
  • -P:指定远程主机的 SSH 端口号。
  • -p:保留文件或者目录的修改时间、访问时间和权限等属性。
  • -C:启用压缩,可以加快传输速度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野熊佩骑

您的鼓励是我持续创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值