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

【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 
/*unzip tinyxml_2_6_1.zip*/

2.把文件解压到指定的目录下,需要用到-d参数。
unzip -d  
/*unzip -d /opt/devtools tinyxml_2_6_1.zip*/

3.解压的时候,有时候不想覆盖已经存在的文件,那么可以加上-n参数。
unzip -n 
unzip -n -d  
/*unzip -n -d /opt/devtools tinyxml_2_6_1.zip */
unzip /home/pan-web-kengso.zip -d /home/tomcat-kengso/webapps


4.查看zip压缩包中包含哪些文件,就可以使用-l参数。
unzip -l 
/*unzip -l tinyxml_2_6_1.zip */

5.查看文件列表包含压的缩比率,
unzip -v 
/*unzip -v tinyxml_2_6_1.zip*/

6.unzip提供了-t参数来检查zip文件是否损坏。
unzip -t 
1.把文件解压到

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


【2】移动文件


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

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

如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。

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


语法

mv(选项)(参数)
• 1

选项

--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.sh

chmod 777 ./ -- 位当前文件夹下所有文件赋予读写权限

chmod u+x *.sh


【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 *

发表评论