文件目录操作命令


1. mkdir命令

mkdir用来创建指定名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。

(1) 命令格式:mkdir [选项] 目录

(2) 命令功能:在指定位置创建指定文件名命名的文件夹或目录,要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限,且同一个目录下不能有重名的。

(3) 命令参数:

-m,--mode模式 设定权限<模式>(类似chmod),而不是rwxrwxrwx

-p,--parents可以是一个路径的名称,此时若路径中的某些目录不存在,加上此选项后系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录

-v,--verbose创建当前新目录或文件时显示信息,如“已创建目录test6”

(4) 命令实例:

①创建一个空目录

             mkdir lijl_bj1(常用)

②递归创建多个目录

             mkdir –p ./lijl_bj1/test(./表示当前目录,../表示上级目录,/表示根目录)(常用)

③创建权限为777的目录

             mkdir –m 777 test777(常用)

④创建新目录显示信息

             mkdir –v test

⑤创建项目的目录结构

    mkdir –vp

   src/{com/sitech/{admin/{entity/,dao/,service,controller},common/util/},config/}

(5) 注意事项:

最后一个实例⑤对顺序是有要求的,即在-vp时才表示-v –p操作,而若是-pv则在上述语句中会默认为创建-vp目录。


2. ls命令

缺省下用来打印当前目录的清单,如果ls指定其他目录,那么就会显示指定目录的文件及文件夹清单。通过ls命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件)、查看目录信息等。

(1) 命令格式:ls [选项] [目录名]

(2) 命令功能:列出目标目录中所有的子目录和文件

(3) 命令参数:

-a,列出目录下的所有文件,包括以.开头的隐含文件(常用)

-c 配合-lt根据ctime排序及根据ctime(文件状态最后更改的时间)

配合-l 显示ctime但根据名称排序(常用)

-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来(常用)

-t 以文件的修改顺序排序

(4) 常用实例:

①列出 /lijl_bj1/com/src文件夹下的所有文件和目录的详细情况


clip_image002

进入lijl_bj1目录,ls –l –R(或-lR) src

②列出当前目录中所有以“s”开头的所有文件目录的信息,

           ls –l s*

clip_image004


3.cd命令

cd命令是Linux里面最基本的命令,很多其他命令都是建立在它的基础之上的

(1) 命令格式:cd [目录名]

(2) 命令功能:切换当前目录至dirName

(3) 常用范例:

①进入系统根目录

             cd /

clip_image006

②进入当前目录的上一级目录:cd ..或者cd ..//

clip_image008

③进入当前用户的主目录

             cd 或者 cd~

④跳转到指定目录

             cd /echncms/lijl_bj1(根目录下进入)

跳转到指定目录,从根目录开始,目录名称前加“/”,当前目录的子目录写名称即可。

⑤返回进入此目录之前所在的目录

             cd –

clip_image010


4. pwd命令

使用“pwd”命令来查看“当前工作目录”的完整路径,每当你在终端进行操作时,都会有一个当前工作目录,在不太确定当前位置时,可以使用pwd命令来查看当前目录再文件系统里的确切位置。

(1) 命令格式:pwd [选项]

(2) 命令功能:查看“当前工作目录”的完整路径

clip_image012

常用参数:一般情况下不使用任何参数,如果目录是链接时,pwd –P 显示出实际路径,而非使用链接路径。若当前路径被删除了,pwd显示的仍是原路径。


5. rm命令

该命令的功能是删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其以下的所有文件及目录均删除,对于链接文件,只是删除了链接,原有文件保持不变。

(1) 命令格式:rm [选项] 文件

(2) 命令功能:删除指定目录中的一个或多个文件或目录,如果没有使用-r选项,则rm不会删除目录,如果使用rm来删除文件,通常仍可以将文件恢复原状。

(3) 命令参数:

-f,--force忽略不存在的文件,从不给出提示(常用)

-i,--interactive 进行交互式地删除(常用)

-r,-R,--recursive 指示rm将参数中列出的全部目录和子目录均递归地删除(常用)

-v,--verbose 详细显示进行的步骤

(4) 命令实例:

①删除文件file,系统会先询问是否删除,rm –i file,输入y之后就会删除

②强行删除file,系统不再提示  rm –f file

clip_image014

③删除任何.log文件,删除前逐一询问  rm –i *.log

④将test1子目录及子目录中所有档案都删除 rm –r test

⑤将test2子目录及子目录中所有档案都删除,并且不用一一询问

     rm  –rf  test2(常用)

clip_image016

⑥删除以-f开头的文件

             rm -- -f


6. rmdir命令

rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的。注意(rm –r dir命令可代替rmdir,但是有很大危险性),删除某目录时也必须对父目录有写权限。

(1) 命令格式:rmdir [选项]…目录…

(2) 命令功能:该命令从一个目录中删除一个或多个子目录项,删除某目录时也必须对父目录有写权限。

(3) 命令参数:

-p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除,如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。(常用)

-v,--verbose显示指令执行过程

(4) 命令实例:

①rmdir不能删除非空目录 rmdir lijl_bj1,该命令不能直接删除非目录

②rmdir –p 当子目录被删除后使它也一并成为空目录的话,则顺便一起删除


7. mv命令

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。

(1) 命令格式:mv [选项] 源文件或目录 目标文件或目录

(2) 命令功能:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链接该文件的链接也将丢失。

(3) 命令参数:

-b :若需要覆盖文件,则覆盖前先行备份(常用)

-f : force强制的意思,如果目标文件已存在,不会询问而直接覆盖(常用)

-t : --target –directory,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。

(4) 命令实例:

①文件改名:将文件test.log 改名为test1.txt

             mv test.log test1.txt

clip_image018

②移动文件:将test1.log文件移至test3

             mv test1.log test3

③将文件log1.txt,log2.txt,log3.txt移至目录test中

             mv log1.txt log2.txt log3.txt test

             mv –t /opt/soft/test/ log1.txt log2.txt log3.txt

④将文件file1改名为file2,如果file2已经存在,则询问是否覆盖

             mv –i log1.txt log2.txt

⑤将文件file1改名为file2,即时file2存在,也是直接覆盖掉

             mv –f log3.txt log2.txt

log3.txt的内容直接覆盖了log2.txt内容,-f这是个危险的选项,使用时候一定要保持头脑清醒,一般情况下最好不用加上它。

⑥目录的移动

             mv dir1 dir2

如果目录dir2不存在,将目录dir1改名为dir2,否则将dir1移动到dir2中

⑦移动当前文件夹下的所有文件到上一级目录

             mv * ../

⑧把当前目录的一个子目录里的文件移动到另一个子目录里

             mv test3/*.txt test5


8.cp命令

cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。一般情况下,shell会设置一个别名,在命令行复制文件时,如果目标文件已存在,就会询问是否覆盖,不管你是否使用参数-i,但如果是在shell脚本中执行cp时,没有参数-i时不会询问是否覆盖,这说明命令行和shell脚本的执行方式有些不同。

(1) 命令格式: cp [选项]… [-T] 源 目的

或 cp [选项]… 源… 目录

或 cp [选项]… -t 目录 源…

(2) 命令功能:将源文件复制至目标文件,或将多个源文件复制至目标文件

(3) 命令参数:

-i ,--interactive 覆盖前询问(使前面的-n选项失效)

-n ,--no-clobber 不要覆盖已存在的文件(使前面的-i选项失效)

-R,-r,--recursive 复制目录及目录内的所有项目(常用)

(4) 命令实例:

①复制单个文件到目标目录,文件在目标文件中不存在

             cp log.log test5

clip_image020

在没有带-a参数时,两个文件的时间是不一样的,在带来-a参数时,两个文件的时间是一致的。

②目标文件存在时,会询问是否覆盖。

             cp log.log test5

目标文件存在时,会询问是否覆盖,这是因为cp 是cp –i 的别名,目标文件存在时,即时加了-f标志,也还会询问是否覆盖。

③复制整个目录

             cp –a test3 test5

注意目标目录存在与否结果是不一样的,目标目录存在时,整个源目录被复制到目标目录里面。


9.touch命令

Linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件。

(1) 命令格式: touch [选项]…文件…

(2) 命令功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。

(3) 命令参数:

-a 或--time = atime--time =access或--time=use 只更改存取时间

-d 使用指定的日期时间,而非现在的时间

-m 或--time=mtime或--time=modify 只更改变动时间

-r 把指定文档或目录的日期时间,统统设成和参考文档和目录的日期时间相同

-t 使用指定的日期,而非现在的时间

(4) 常用实例:

①创建不存在的文件:

             touch log2015.log log2016.log

如果log2014.log不存在,则不创建文件

②更新log.log的时间和log2015.log时间戳相同

             touch –r log2015.log log.log

③设定文件的时间戳

             touch –t 201505191357.50 log.log


10. find命令

因为Linux下面一切皆文件,经常需要搜索某些文件来编写,所以对于linux来说find是一条很重要的命令。linux下面的find指令用于在目录结构中搜索文件,并执行指定的操作。它提供了相当多的查找条件,功能很强大。在不指定查找目录的情况下,find会在对整个系统进行遍历。即使系统中含有网络文件系统,find命令在该文件系统中同样有效。在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间。

(1) 命令格式: find [查找目录] [查找规则] [查找完后的操作]

(2) 命令功能:用于在文件树中查找文件,并做相应的处理。

(3) 命令参数:

pathname:表示所要查找的目录路径,例如”.”表示当前目录,”/”表示根目录。

-print:将find找到的文件输出到标准输出。

-exec:对找到的文件执行exec这个参数所指定的shell命令,相应的形式为:-exec command {} \; 将查到的文件进行command操作,”{}”就代替查到的文件。

①根据文件名查找:

find ./ -name file(常用)

clip_image022

②文件名通配符:

find ./ -name “file*”(常用)

clip_image024

“*”:通配任意的字符,可以是任何东西

③根据文件所属用户和组来查找(常用)

find ./ -user user

find ./ -group group

④根据文件类型查找(常用)

-type

f     // 普通文件

d     //目录文件

l     //链接文件

b     //块设备文件

c     //字符设备文件

p     //管道文件

s     //socket文件


文本文件操作命令


1.统计命令——wc

统计文件里面有多少单词,多少行,多少字符。

1.1 wc语法

# wc [-lwm]

选项与参数:

-l :仅列出行;

-w :仅列出多少字(英文单字);

-m :多少字符;

1.2 wc使用

#wc /etc/passwd40 45 1719 /etc/passwd

(40是行数,45是单词数,1719是字节数)

wc的命令比较简单使用,每个参数使用如下:

#wc -l /etc/passwd #统计行数,在对记录数时,很常用

/etc/passwd #表示系统有40个账户

#wc -w /etc/passwd #统计单词出现次数

/etc/passwd

#wc -m /etc/passwd #统计文件的字节数


2.查找命令——grep

2.1 grep语法

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

grep [options]
[options]主要参数:
  -c:只输出匹配行的计数。
  -I:不区分大 小写(只适用于单字符)。
  -h:查询多文件时不显示文件名。
  -l:查询多文件时只输出包含匹配字符的文件名。
  -n:显示匹配行及 行号。
  -s:不显示不存在或无匹配文本的错误信息。
  -v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
  。:所有的单个字符。
* :有字符,长度可以为0。

2.2 grep简单使用

  显示所有以d开头的文件中包含 test的行:

$ grep 'test' d*

  显示在aa,bb,cc文件中匹配test的行:

$ grep 'test' aa bb cc

  输出匹配行的计数:

grep -c "48" data.doc #输出文档中含有48字符的行数

  显示匹配行和行数:

grep -n "48" data.doc #显示所有匹配48的行和行号

  显示非匹配的行:

grep -vn "48" data.doc #输出所有不包含48的行

  大小写敏感:

grep -i "ab" data.doc #输出所有含有ab或Ab的字符串的行


3. cat命令

cat命令的用途是连接文件或标准输入并打印,这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

3.1     命令格式:cat [选项] [文件]…

3.2     命令功能:cat主要有三大功能:

①一次显示整个文件:cat filename

②从键盘创建一个文件:cat>filename只能创建新文件,不能编辑已有文件

③将几个文件合并为一个文件:cat file1 file2>file

3.3     命令参数:

-b,--number-nonblank 对非空输出行编号

-n,--number                对输出的所有行编号,由1开始对所有输出的行数编号

-T,--show-tabs            将跳格字符显示为^I

3.4     使用实例:

①把log2012.log的文件内容加上行号后输入log2013.log这个文件

           cat –n log2012.log log2013.log

②把log2012.log和log2013.log的文件内容加上行号(空白行不加)之后将内容附加到log.log里。

           cat –b log2012.log log2013.log log.log

③把log2012.log的文件内容加上行号后输入log.log这个文件里

           cat –n log2012.log>log.log


资料来源:

https://www.cnblogs.com/carrie-chen/p/5869299.html

https://www.cnblogs.com/maybe2030/p/5325530.html

https://www.cnblogs.com/yhjoker/p/7568680.html

https://www.cnblogs.com/yolanda-lee/p/4544573.html