【1】zip/unzip压缩/解压文件

zip命令:

zip(选项)(参数)
zip -r 文件名字 ./[.代表当前目录] -x filename[不需要压缩的文件名]

选项:

-A:调整可执行的自动解压缩文件;
-b<工作目录>:指定暂时存放文件的目录;
-c:替每个被压缩的文件加上注释;
-d:从压缩文件内删除指定的文件;
-D:压缩文件内不建立目录名称;
-f:此参数的效果和指定“-u”参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中;
-F:尝试修复已损坏的压缩文件;
-g:将文件压缩后附加在已有的压缩文件之后,而非另行建立新的压缩文件;
-h:在线帮助;
-i<范本样式>:只压缩符合条件的文件;
-j:只保存文件名称及其内容,而不存放任何目录名称;
-J:删除压缩文件前面不必要的数据;
-k:使用MS-DOS兼容格式的文件名称;
-l:压缩文件时,把LF字符置换成LF+CR字符;
-ll:压缩文件时,把LF+cp字符置换成LF字符;
-L:显示版权信息;
-m:将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中;
-n<字尾字符串>:不压缩具有特定字尾字符串的文件;
-o:以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同;
-q:不显示指令执行过程;
-r:递归处理,将指定目录下的所有文件和子目录一并处理;
-S:包含系统和隐藏文件;
-t<日期时间>:把压缩文件的日期设成指定的日期;
-T:检查备份文件内的每个文件是否正确无误;
-u:更换较新的文件到压缩文件内;
-v:显示指令执行过程或显示版本信息;
-V:保存VMS操作系统的文件属性;
-w:在文件名称里假如版本编号,本参数仅在VMS操作系统下有效;
-x<范本样式>:压缩时排除符合条件的文件;
-X:不保存额外的文件属性;
-y:直接保存符号连接,而非该链接所指向的文件,本参数仅在UNIX之类的系统下有效;
-z:替压缩文件加上注释;
-$:保存第一个被压缩文件所在磁盘的卷册名称;
-<压缩效率>:压缩效率是一个介于1~9的数值。

参数:

  • zip压缩包:指定要创建的zip压缩包;
  • 文件列表:指定要压缩的文件列表。

示例如下:

zip -r portaljiang.zip ./
/*压缩整个当前目录*/zip -r name.zip ./name
/*压缩当前目录下的name文件夹*/

压缩多个文件夹实例如下:

#如在/home/user/nginx下压缩conf html两个文件夹
zip -r nginx.zip html conf

unzip

1.把文件解压到当前目录下
unzip <zip-file>
/*unzip tinyxml_2_6_1.zip*/2.把文件解压到指定的目录下,需要用到-d参数。
unzip -d <dst-dir> <zip-file>
/*unzip -d /opt/devtools tinyxml_2_6_1.zip*/3.解压的时候,有时候不想覆盖已经存在的文件,那么可以加上-n参数。
unzip -n <zip-file>
unzip -n -d <dst-dir> <zip-file>
/*unzip -n -d /opt/devtools tinyxml_2_6_1.zip */
unzip /home/pan-web-kengso.zip -d /home/tomcat-kengso/webapps4.查看zip压缩包中包含哪些文件,就可以使用-l参数。
unzip -l <zip-file>
/*unzip -l tinyxml_2_6_1.zip */5.查看文件列表包含压的缩比率,
unzip -v <zip-file>
/*unzip -v tinyxml_2_6_1.zip*/6.unzip提供了-t参数来检查zip文件是否损坏。
unzip -t <zip-file>

类似的还有gzip/gunzip 指令,gzip 用于压缩文件,gunzip 用于解压的。gzip只能将文件压缩为*.gz文件。


【2】移动文件

mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。

mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有两种不同的结果:

  • 如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。
  • 如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。

语法

mv(选项)(参数)

选项

--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
--strip-trailing-slashes:删除源文件中的斜杠“/”;
-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;
--target-directory=<目录>:指定源文件要移动到目标目录;
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

参数

  • 源文件:源文件列表。
  • 目标文件:如果“目标文件”是文件名则在移动文件的同时,将其改名为“目标文件”;如果“目标文件”是目录名则将源文件移动到“目标文件”下。

示例如下:

位于opt/oa/目录下:mv /opt/oa/2015app/portal/portaljiang.zip ./[移动该zip到当前目录]

【3】创建文件夹

在当前目录下创建单个文件:

mkdir ./fileName

创建级联目录:

mkdir -p ./file1/file2

-p 表示可以级联创建(即file1,file2均不存在可直接创建),否则只能在file1存在的情况下创建file2。linux里面无mkdirs命令


【4】删除文件

删除文件夹实例:

rm -rf /var/log/httpd/access

将会删除/var/log/httpd/access目录以及其下所有文件、文件夹

删除文件使用实例:

rm -f /var/log/httpd/access.log

将会强制删除/var/log/httpd/access.log这个文件。

删除空的目录

rmdir [选项] 要删除的空目录

【5】查找文件

find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

语法格式示例如下:

find [搜索范围] [选项]
find / -name '*.ftl'[在根目录下查找ftl文件]
find / -name memcached[在根目录下查找memcached文件]
选项 功能
-name<查询方式> 按照指定的文件名查找模式查找文件
-user<用户名> 查找属于指定用户名所有文件
-size<文件大小> 按照指定的文件大小查找文件。

find --help如下:


【6】为文件赋予被执行权限

如果需要执行某些特殊文件,如.sh文件。有时会遇到文件权限不足,这并不是说明你没有执行的权限。而是,该文件暂时不能被执行。

如当前目录下run.sh文件赋予被执行权限命令如下:

chmod 755 ./run.shchmod 777 ./ -- 位当前文件夹下所有文件赋予读写权限chmod u+x *.sh

更多文件权限设置参考:chmod命令设置文件操作权限


【7】复制文件

单独复制某个文件:

cp file1 file2;

复制文件夹(包含里面内容)到另外一个文件夹:

cp -r file1 file2


【8】创建文件

touch命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。

语法

touch(选项)(参数)

选项

-a:或--time=atime或--time=access或--time=use  只更改存取时间;
-c:或--no-create  不建立任何文件;
-d:<时间日期> 使用指定的日期时间,而非现在的时间;
-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
-m:或--time=mtime或--time=modify  只更该变动时间;
-r:<参考文件或目录>  把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
-t:<日期时间>  使用指定的日期时间,而非现在的时间;
--help:在线帮助;
--version:显示版本信息。

参数

文件:指定要设置时间属性的文件列表。

实例

touch test.java

【9】locate/slocate定位文件

locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。

locate命令和slocate命令都用来查找文件或目录。

locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

基本语法

 locate/slocate(选项)(参数)

选项

-d<目录>或--database=<目录>:指定数据库所在的目录;
-u:更新slocate数据库;
--help:显示帮助;
--version:显示版本信息。

参数

查找字符串:要查找的文件名中含有的字符串。

实例

[root@localhost myroot]# locate test.java
locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
[root@localhost myroot]# updatedb[root@localhost myroot]# locate test.java
/root/test.java

【10】文件的所有者,所在组

① 文件所有者

一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。

  • 查看文件的所有者

    ls –ahl

  • 修改文件所有者

    chown 用户名 文件名

  • chown修改文件所有者同时修改所属组

chown -R janus:janus ./test2

实例

[root@localhost ~]# ls -ahl /root/test3.java
-rw-r--r--. 1 root root 20 Jun 13 08:57 /root/test3.java
//改变所有者 不改变所在组
[root@localhost ~]# chown jane ./test3.java
[root@localhost ~]# ls -ahl /root/test3.java
-rw-r--r--. 1 jane root 20 Jun 13 08:57 /root/test3.java

② 文件所在组

当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。

  • 修改文件所在的组
chgrp 组名   文件名

实例

[root@localhost ~]# chgrp jane ./test3.java
[root@localhost ~]# ls -ahl /root/test3.java
-rw-r--r--. 1 jane jane 20 Jun 13 08:57 /root/test3.java

【11】tar压缩/解压缩文件

tar命令可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。

语法

tar(选项)(参数)

选项

-A或--catenate:新增文件到以存在的备份文件;
-B:设置区块大小;
-c或--create:建立新的备份文件;
-C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-d:记录文件的差别;
-x或--extract或--get:从备份文件中还原文件;
-t或--list:列出备份文件的内容;
-z或--gzip或--ungzip:通过gzip指令处理备份文件;
-Z或--compress或--uncompress:通过compress指令处理备份文件;
-f<备份文件>或--file=<备份文件>:指定备份文件;
-v或--verbose:显示指令执行过程;
-r:添加文件到已经压缩的文件;
-u:添加改变了和现有的文件到已经存在的压缩文件;
-j:支持bzip2解压文件;
-v:显示操作过程;
-l:文件系统边界设置;
-k:保留原有文件不覆盖;
-m:保留文件不被覆盖;
-w:确认压缩文件的正确性;
-p或--same-permissions:用原来的文件权限还原文件;
-P或--absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号;
-N <日期格式> 或 --newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
--exclude=<范本样式>:排除符合范本样式的文件。

参数

文件或目录:指定要打包的文件或目录列表。

实例

将文件全部打包成tar包:

tar -cvf log.tar log2012.log    仅打包,不压缩!
tar -zcvf log.tar.gz log2012.log   打包后,以 gzip 压缩
tar -jcvf log.tar.bz2 log2012.log  打包后,以 bzip2 压缩

将tar包解压缩:

tar -zxvf /opt/soft/test/log.tar.gz

查阅上述tar包内有哪些文件:

tar -ztvf log.tar.gz

【12】jar命令压缩/解压jar包

#解压jar包
jar -xvf mallmng-provider-1.0-SNAPSHOT.jar# 压缩为jar包
jar cvfM0 mallmng-provider-1.0-SNAPSHOT.jar *

Linux下文件增删改查定位压缩操作与权限所属用户相关推荐

  1. java File 读取本地文件 增删改查

    java 读取本地文件 增删改查 这里删除不做删除,只是对文件进行重命名,只是物理意义不可见,实际存在 用的jfinal框架 /*** 列出指定路径的文件* @param path 路径* @retu ...

  2. linux c mysql 增删改查_Linux C语言连接MySQL 增删改查操作

    Linux下想要测试mysql和memcached的性能,因为是服务器只能通过终端连接,所以考虑用C语言写测试代码.于是研究了把C怎么连接MySQL以及增删改查的代码.安装mysql-client或者 ...

  3. python 文件修改记录_python基础-文件增删改查

    对指定文件haproxy.conf的backend www.oldboy1.org进行增删改查.文件内容如下 global log 127.0.0.1 local2 daemon maxconn 25 ...

  4. iOS开发-plist文件增删改查

    plist第一次看到这个后缀名文件的时候感觉怪怪的,不过接触久了也就习以为常了,plist是Property List的简称可以理解成属性列表文件,主要用来存储串行化后的对象的文件.扩展名为.plis ...

  5. linux命令大全增删改查,crudini命令

    crudini 是 Pádraig Brady 用 Python 开发的.用来对配置文件(即ini文件)进行编辑的工具.crud是4个单词的首字母简写,即create.read.update和dele ...

  6. Mysql —— C语言链接mysql数据库,命令行形式(getopt()函数),用户、用户组增删改查(用户组表内有用户控制的策略字段)

    函数说明--getopt(): 函数说明 getopt()用来分析命令行参数.参数argc和argv分别代表参数个数和内容,跟main()函数的命令行参数是一样的. optstring中的指定的内容的 ...

  7. sql语句ding_SQL语句映射文件增删改查、参数、缓存

    !!注意把括号换成尖括号...... 2.2 select Xml代码 <!-- 查询学生,根据id --> <select id="getStudent" pa ...

  8. linux数组操作 增删改查,linuxea:go数组与数组增删改查(19)

    复合数据类型是集合类,并且可以存储多个单值. 在golang中存储的数组是相同的数据类型,并且长度也是其中的一个属性.在go中,数组的长度一旦定义,就不可变.如果声明了长度的变量,只能赋值相同的长度的 ...

  9. MongoDB第一课,shell命令下的增删改查

    查看所有数据库列表 show dbs 使用数据库.创建数据库 use databasename 如果真的想把这个数据库创建成功,那么必须插入一个数据. 数据库中不能直接插入数据,只能往集合(colle ...

最新文章

  1. Hadoop之 MapReducer工作过程
  2. tcpdump基础教程
  3. Surf Gym - 100819S
  4. python用turtle画皮卡丘_用Python的turtle作画(2)——皮卡丘
  5. [iOS]如何把App打包成ipa文件,然后App上架流程[利用Application Loader]
  6. java 串口tcp客户端访问串口tcp服务器_怎么使用无线串口服务器
  7. c 语言与数据库技术基础教程答案,2016计算机三级《数据库技术》备考习题与答案...
  8. 37,字节跳动Python面试
  9. 爬虫一:用正则表达式爬取图片
  10. 通过互联网进行远程桌面连接
  11. iOS多线程——GCD底层探索中(dispatch_async与dispatch_sync源码)
  12. python数据分析002—python基础语法
  13. 计算机开机按f1,电脑开机要按f1怎么解决 开机按F1的各种解决方法整理
  14. java的graphics2d_Java Graphics2D 使用详解 | 学步园
  15. C#窗体应用程序之设置窗体名称和程序图标
  16. vue2中vuex状态管理的理解(菜单面包板)
  17. 火爆科研圈的三维重建技术:Neural radiance fields (NeRF)
  18. 防火墙技术及其在校园网中的设计方案
  19. 在打印服务器中新增纸张规格后,在打印机首选项中的自定义纸张中看不到的原因
  20. GPS时间系统概述和世界时系统

热门文章

  1. 计算机xp系统怎么录音,XP系统电脑怎么录音? - KK录像机
  2. 方差、协方差、协方差矩阵以及互相关矩阵
  3. Matlab的基本使用方法
  4. javascript网页设计作业——初音动漫(6页) dreamweaver作业静态HTML网页设计模板
  5. 工业机器人智能制造生产线教学案例
  6. 小议阿里云数加平台对企业有何帮助?
  7. 中国移动一级业务支撑系统多Kubernetes集群PaaS平台实践经验分享
  8. Linux-Ubuntu 和 安装 genymotion 的一些问题和一些命令
  9. python 日历壁纸_Excel+Python=精美DIY壁纸日历
  10. ffmpeg源码中ffplay音视频同步原理及实现