文本内容统计命令 wc
例1:
[root@localhost Desktop]# wc -c f1.txt
29 f1.txt
例2:
[root@localhost Desktop]# wc -w f1.txt
6 f1.txt
查找文件的路径
find命令详解
假设首先已经存在f1.txt-------f5.txt文件
find命令可以按照文件名,大小,时间,权限,所属者,所属组来搜索文件。
参数大全:
例1:以-name匹配:
如下;
[root@localhost Desktop]# find . -name f1.txt
./f1.txt
注意:那个 . 代表当前路径开始查找,并且是精准匹配,也就是不能丢弃文件后缀名。
[root@localhost Desktop]# find . -name "f*.txt"
./f1.txt
./f2.txt
./f3.txt
./f4.txt
./f5.txt
注意:* 是不精准匹配,也就是模糊匹配。
[root@localhost Desktop]# find . -name "f?.txt"
注意:?是非贪婪匹配。输出的是满足条件的第一个文件。
例:删除所有的.txt文档
find . -name "*.txt" -exec rm {} \;
find . -name "*.txt" | xargs rm {}
以上两个命令的区别:
-exec
1.参数是一个一个传递的,传递一个参数执行一次rm
2.文件名有空格等特殊字符也能处理
xargs
1.一次将参数传给命令,可以使用-n控制参数个数
2.处理特殊文件名需要采用如下方式:
find . -name "*.txt" print0 |xargs -0 rm {}
说明:find命令的参数-print0,指定输出的文件列表以null分隔。
其他参数用法看上图。
xargs
xargs(英文全拼: eXtended ARGuments),xargs 可以将管道或标准输入(stdin)数据传递给另外一个命令作为参数,默认情况下,xargs将换行符和空格作为分隔符,把标准输入分解成一个个命令行参数,并且xargs后面的命令默认是echo。
-a 参数:从文件中读取数据作为 stdin,将不是一行的内容打印在同一行。
-t选项:先打印命令,然后再执行
-d选项:默认情况下,xargs将换行符和空格作为分隔符,把标准输入分解成一个个命令行参数,-d选项可以更改分隔符
例:
[root@master ~]# echo a1b1c2 | xargs -d '1'
a b c2
-n选项:指定每次将多少项作为命令行参数,默认是所有的项
[root@master ~]# echo {0..9} | xargs -n 2 echo
0 1
2 3
4 5
6 7
8 9
-L选项:如果标准输入包含多行,-L参数指定多少行作为一个命令行参数
[root@localhost Desktop]# cat f1.txt | xargs -L 2
123 134
134 2455
35r342 2244
-E选项:指定分隔符【有的地方可能是-e】,当xargs分析到含有分隔符这个标志的时候就停止
-I选项:如果xargs要将命令行参数传给多个命令,可以使用-I参数
-0选项:由于xargs默认将空格作为分隔符,所以不太适合处理文件名,因为文件名可能包含空格。-0参数表示用null当作分隔符
zip,unzip命令
zip: 可以压缩文件和目录。
语法:zip FILE
语法:unzip FILE
gzip和gunzip命令
bzip2、bunzip2命令
xz、unxz命令
tar归档命令压缩
tar cvf/cfv/-cvf 文件名.tar 要打包的目录或文件名列表……
创建带压缩的包文件,为节省存储空间,通常需要生成压缩格式的tar包文件,tar命令支持三种不同的压缩方式
tar czf/-czf 文件名.tar.gz 要打包压缩的目录或文件名……
tar cjf/-cjf 文件名.tar.bz2 要打包压缩的目录或文件名……
tar cJf/-cJf 文件名.tar.xz 要打包压缩的目录或文件名……
z是gz型,j是bz2 ,J 是zx
另外
打包时排除某个文件
tar cf 文件名.tar --exclude=路径/文件 路径
注:此处的路径前后需要保持保持一致,统一使用绝对路径
或者相对路径
例1:使用gzip方式对文件夹进行压缩,并指定压缩名为tar_gzip.tar.gz。
[root@localhost Desktop]# tar czf tar_gzip.tar.gz f1
[root@localhost Desktop]# ls
f1 tar_gzip.tar.gz
例2:使用bzip2方式对文件夹进行压缩,并指定压缩名为tar_bzip2.tar.bz2。
[root@localhost Desktop]# tar cjf tar_bzip2.tar.bz2 f1
[root@localhost Desktop]# ls
f1 tar_bzip2.tar.bz2
例3:使用xz方式对文件夹进行压缩,并指定压缩名为tar_bzip2.tar.xz。
[root@localhost Desktop]# tar cJvf tar_xz.tar.xz f1
[root@localhost Desktop]# ls
f1 tar_xz.tar.xz
例4:创建file1.txt,file2.txt ,file3.txt 文件。使用gzip对file1.txt,file2.txt进行压缩,压缩名字为 tar_file.tar.gz:
[root@localhost Desktop]# tar -czf tar_file.tar.gz file{1..2}.txt
[root@localhost Desktop]# ls
tar_file.tar.gz file1 file2 file3
新建file4.txt,将file4.txt添加到file12.tar.gz中,查看这个压缩包有哪些文件及目录。不能解压,只能查看。
[root@localhost Desktop]# touch file4.txt 创建file4
[root@localhost Desktop]# tar -f tar_file.tar.gz file4.txt --append 在压缩包里面添加
[root@localhost Desktop]# tar -tvf tar_file.tar.gz 查看
-rw-r--r-- root/root 0 2022-07-18 16:50 file1.txt
-rw-r--r-- root/root 0 2022-07-18 16:50 file2.txt
-rw-r--r-- root/root 0 2022-07-18 18:06 file4.txt
说明,之前 tar_file.tar.gz是2个文件,现在有3个了
解压 tar_file.tar.gz到目录tar_test。没有就创建
[root@localhost Desktop]# tar -zvxf tar_file.tar.gz tar_test -C Desktop/tar_test
sftp协议
要求:
在Linux上的/root目录创建一个Linux.txt,在windows上创建windows.txt
通过sftp的 get和put命令,将windows上的windows.txt推送到linux上
通过sftp的 get和put命令,将linux上的linux.txt推送到windows上
第一步:
将本机与虚拟机连接(服务器),首先要测试2个能否互通。
第二步:
在本地 win+R 调出命令行,用sftp协议连接本机与虚拟机,如下命令:
第三步:
本机用put命令将123.txt文件传输到虚拟机
注意:本机所在虚拟机的位置就是put之后文件的位置。如下:
上传成功。
第四步:
get获取Linux上的文件到本地:如下
注意参数:D:\Desktop 是上传到本地的路径