Linux第三天(2)

第六章 文件的其他操作命令

6.1 文本内容统计wc

wc命令用于统计指定文本文件的行数、字数或字节数,语法为: wc [选项] 文件名称

计算aa与filter文件行数

6.2 复制、移动文件

1、复制文件或目录

语法: cp [选项] 源文件 目标文件

2、移动文件或目录

mv命令用于剪切或重命名文件,语法为: mv [选项] 源文件名称 目标文件名称

剪切操作不同于复制操作,因为它会把源文件删除掉,只保留剪切后的文件。如果在同一个目录中将某

个文件剪切后还粘贴到当前目录下,其实本质就是对文件进行了重命名操作。

[root@kongd ~]# mv x.log linux.log

[root@kongd ~]# ls

install.log linux.log

6.3 查找文件的路径

搜索可执行文件:whereis/which

find详解:

 

1查找以"a"开头的文件名

[root@localhost ~]# find 路径 [选项] 搜索内容

选项:

-name: 按照文件名搜索

-iname: 按照文件名搜索,不区分文件名大小写

-inum: 按照 inode 号搜索

 

[root@yang test]# find /test  -name  'a*'

也可以使用“./*”或“.

查找文件类型为“.txt              "*"表示任意

[root@yang test]# find ./* -name *.txt              也可以不带引号‘’

(2)根据文件大小查找

[root@localhost ~]# find 搜索路径 [选项] 搜索内容

选项:

-size [+|-]大小: 按照指定大小搜索文件,这里的+的意思是搜索比指定大小还要大的文件,

“-”的意思是搜索比指定大小还要小的文件

[root@yang test]# find ./* -size +1k       必须带单位‘k/KB/Mb’

(3)按照修改时间搜索

Linux 中的文件有访问时间(atime)、数据修改时间(mtime)、状态修改时间(ctime)这三个时

间,我们可以按照时间来搜索文件。

[root@localhost ~]# find 搜索路径 [选项] 搜索内容

选项:

-atime [+|-]时间: 按照文件访问时间搜索

-mtime [+|-]时间: 按照文件数据修改时间搜索

-ctime [+|-]时间: 按照文件状态修改时间搜索

-newer file: 把比file修改时间更新的文件列出来

-5:代表 5 天内修改的文件。

5:代表前 5~6 天那一天修改的文件。

+5:代表 6 天前修改的文件。

[root@yang test]# find .  -atime  -5

(4)按照权限搜索

[root@localhost ~]# find 搜索路径 [选项] 搜索内容

选项:

-perm 权限模式: 查找文件权限刚好等于权限模式的文件

-perm -权限模式: 查找文件权限全部包含权限模式的文件

-perm +权限模式: 查找文件权限包含权限模式的任意一个权限的文件

如果要在整个系统中搜索权限中包括SUID权限的所有文件,只需使用-4000即可:

[root@kongd ~]# find / -perm -4000 -print

/usr/bin/fusermount

/usr/bin/chage

………………省略部分输出信息………………

(5)按照所有者和所属组搜索

[root@localhost ~]# find 搜索路径 [选项] 搜索内容

选项:

-uid 用户 ID: 按照用户 ID 查找所有者是指定 ID 的文件

-gid ID: 按照用户组 ID 查找所属组是指定 ID 的文件

-user 用户名: 按照用户名查找所有者是指定用户的文件

-group 组名: 按照组名查找所属组是指定用户组的文件

-nouser: 查找没有所有者的文件

(6)按照文件类型搜索

[root@localhost ~]# find 搜索路径 [选项] 搜索内容

选项:

-type d: 查找目录

-type f: 查找普通文件

-type l: 查找软链接文件

(7)逻辑运算符

[root@localhost ~]# find 搜索路径 [选项] 搜索内容

选项:

-aand 逻辑与

-oor 逻辑或

-notnot 逻辑非

(8)其它选项

-exec参数重要的作用。这个参数用于把find命令搜索到的结果交由紧随其后的命令作进一步处理,它十分类似于管道符技术,并且由于find命令对参数的特殊要求,因此虽然exec是长格式形式,但依然只需要一个减号(-

示例:在整个文件系统中找出所有归属于kongd用户的文件并复制到 /root/findresults 目录。

该实验的重点是 -exec {} \; 参数,其中的{}表示find命令搜索出的每一个文件,并且命令的结尾必须是 \;

[root@kongd ~]# find / -user kongd -exec cp -a {} /root/findresults/ \;

6.4 压缩和解压缩

6.4.1 zipunzip命令

zip: 可以压缩文件和目录。

语法: zip FILE

语法: unzip FILE

素材准备:

[root@localhost ~]# mkdir /test

[root@localhost ~]# cd /test

[root@localhost test]# for i in {1..5};do echo "test$i" > test$i.txt;done

[root@localhost test]# ls

test1.txt test2.txt test3.txt test4.txt test5.txt

[root@localhost test]# mkdir dir1

[root@localhost test]# cp /etc/fstab dir1/

实例1: 使用zip压缩文件test1.txt

[root@localhost test]# zip test1.zip test1.txt

adding: test1.txt (stored 0%)

[root@localhost test]# ls test1*

test1.txt test1.zip

压缩率为最高压缩test2.txt

[root@localhost test]# zip -9 test2.zip test2.txt

adding: test2.txt (stored 0%)

[root@localhost test]# ls test2*

test2.txt test2.zip

实例2: 将当前目录dir1连同目录下文件一起压缩

[root@localhost test]# zip -r dir1.zip dir1/

adding: dir1/ (stored 0%)

adding: dir1/fstab (deflated 44%)

[root@localhost tes

Archive: test.zip

extracting: dir1/test3.txt

extracting: dir1/test4.txt

extracting: dir1/test5.txt

实例3: 向压缩文件中test1.zip中添加test2. txt文件

[root@localhost test]# zip -m test1.zip test2.txt

adding: test2.txt (stored 0%)

实例4: 删除压缩文件中的文件

[root@localhost test]# zip -d test1.zip test2.txt

实例5: 压缩文件时排除某个文件

[root@localhost test]# zip test.zip *.txt -x test1.txt

adding: test3.txt (stored 0%)

adding: test4.txt (stored 0%)

adding: test5.txt (stored 0%)

实例6: 解压文件test2.zip

[root@localhost test]# unzip test2.zip

Archive: test2.zip

extracting: test2.txt

实例7:将压缩文件text.zip在指定目录dir1下解压缩

[root@localhost test]# unzip test.zip -d dir1

实例8: 查看压缩文件目录,但不解压

[root@localhost test]# unzip -v test.zip

Archive: test.zip

Length Method Size Cmpr Date Time CRC-32 Name

 

-------- ------ ------- ---- ---------- ----- -------- ----

 

6 Stored 6 0% 06-17-2017 17:53 4e6f5599 test3.txt

6 Stored 6 0% 06-17-2017 17:53 012ec35e test4.txt

6 Stored 6 0% 06-17-2017 17:53 1835f21f test5.txt

 

-------- ------- --- -------

 

18 18 0% 3 files

t]# ls dir1*

dir1.zip

dir1:

fstab

gzipgunzip命令

bzip2bunzip2命令

xzunxz命令

 

注:查看压缩过的文件内容: xzcatxzless xzcat 文件名.xz

6.5 tar归档命令

格式: tar [选项] [args]……

选项:任选其一

必选项:

辅助选项:

额外的选项:

#打包时排除某个文件

tar cf 文件名.tar --exclude=路径/文件 路径

注:此处的路径前后需要保持保持一致,统一使用绝对路径或者相对路径

1. 创建(非压缩的)打包文件,将指定的一个或多个文件或目录备份生成为一个指定的包文件

tar cvf/cfv/-cvf 文件名.tar 要打包的目录或文件名列表……

2. 列出包文件中的文件列表

tar t[v]f 包文件名

3. 创建带压缩的包文件,为节省存储空间,通常需要生成压缩格式的tar包文件,tar命令支持三种不

同的压缩方式

tar czf/-czf 文件名.tar.gz 要打包压缩的目录或文件名……

tar cjf/-cjf 文件名.tar.bz2 要打包压缩的目录或文件名……

tar cJf/-cJf 文件名.tar.xz 要打包压缩的目录或文件名……

4. 提取包文件到指定目录

tar xf/-xf/-xzf 文件名.tar.gz [-C 目标路径]

tar xf/-xf/-xjf 文件名.tar.bz2 [-C 目标路径]

tar xf/-xf/-xJf 文件名.tar.xz [-C 目标路径]

例:创建passwd.tar打包文件,将文件e放入包文件,压缩

[root@yang test]# tar rvf passwd.tar e

e

[root@yang test]# tar tf passwd.tar

passwd

e

[root@yang test]# tar czf passwd.tar.gz passwd

压缩结束不能再存放文件

解包:解压缩到dir目录

6.6 文件上传下载

1、sftp是一个交互式文件传输命令

它类似于ftp传输协议,属于ssh, 但它进行加密传输,相对FTP来讲有更高的安全性。

如果有服务器的端口不是默认的22,请在sftp后面加-P 端口号。

2、scp具有和ssh一样的验证机制,从而可以实现2台机器安全的远程拷贝文件

scp可以概括为: scp -P 端口 文件路径 用户名@主机地址:远程目录

如果想拷贝本地文件到另外一台ssh终端,可以使用以下命令;

3、rz命令与sz命令

(1)rz命令

rz命令(Receive ZMODEM),使用ZMODEM协议,将本地文件批量上传到远程Linux/Unix服务器,注

意不能上传文件夹。

当我们使用虚拟终端软件,如Xshell、SecureCRT或PuTTY来连接远程服务器后,使用rz命令可以上传本

地文件到远程服务器。输入rz回车后,会出现文件选择对话框,选择需要上传文件,一次可以指定多个

文件,上传到服务器的路径为当前执行rz命令的目录。

命令格式: rz [选项] [filelist]

# sftp root@223.6.6.6

The authenticity of host ‘223.6.6.6 (223.6.6.6)’ can’t be established.

ECDSA key fingerprint is SHA256:Hl/dKTFzL4lOlF8DIG5itaV4OAsZunC2AWlFGLjLfsg.

Are you sure you want to continue connecting (yes/no)? yes【输入yes回车】

Warning: Permanently added ‘223.6.6.6’ (ECDSA) to the list of known hosts.

root@223.6.6.6’s password:【输入223.6.6.6root密码并回车】

Connected to 223.6.6.6.

sftp>

将223.6.6.6服务器文件下载到223.5.5.5的home目录;

sftp> get /var/www/renwole.txt /home/

将223.5.5.5服务器文件上传到223.6.6.6服务器的mnt目录;

sftp> put /home/renwole.txt /mnt/

你如果不知道远程主机的目录是什么样, ls命令可以列出223.6.6.6服务器的当前目录列表。例如:

sftp> ls //和查看本地操作命令一样

sftp> pwd //查询223.6.6.6的当前工作目录

如果想知道本地主机(223.5.5.5)的目录是什么样,可以使用下面的命令,例如:

sftp> lls

sftp> lpwd

如果想退出,例如:

# exit //退出机器,返回你原始机器界面。

(2)sz命令

sz命令(Send ZMODEM)通过ZMODEM协议,可将多个文件从远程服务器下载到本地。注意不能下载

文件夹,如果下载文件夹,请先打包再下载。

下载多个文件: sz file1 file2 file3

注意:有的机器可能不能使用 rz/sz 命令,这个时候我们就需要安装 lrzsz 软件包

执行以下命令:

#yum install lrzsz -y

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值