linux常用命令总结二-文件和目录操作命令
1. ls
ls命令用于显示文件目录列表,和Windows系统下DOS命令中的dir类似。当执行ls命令的时候,默认显示的只有非隐藏文件的文件名、以文件名进行排序及文件名代表的颜色显示。当不加参数的时候,默认列出当前目录的列表信息。ls命令的使用率非常的高,参数也非常多。
注意:在Linux下,文件名以.开头代表该文件为隐藏文件,如:.bashrc
ls [选项] [目录或文件名] -a: --all的缩写,显示所有的文件,包括隐藏文件(以.开头的文件)。 -A: --almost-all的缩写,显示所有的文件,包括隐藏文件,单不包括表示当前的目录.和上级目录..这两个文件。 -c: 和-lt一起使用,显示列表并且以ctime(文件状态最后改变的时间)排序。如果和-l一起使用时显示ctime并且以文件名排序。其他情况,以ctime排序。 -d: --directory的缩写,仅列出目录本身,而不是列出目录里的内容列表。 -f: 直接列出结果,而不进行排序(ls默认会以文件名进行排序) --color[=WHEN]: 是否根据文件类型显示颜色,WHEN可以为never、always或者auto --full-time: 以完整的实际模式显示(包含年月日时分秒),类似与ls -l --time-style=full-iso -g: 列表显示结果,和-l类似,但是不显示文件所属者。 -h: 将文件内容大小以GB、KB等易读的方式显示 -i: 结合-l参数,列出每个文件的inode -l: 列出长数据串,显示出文件的属性与权限等数据信息(常用) -n: 和-l类似,只是显示的所属用户和组不是名称而是对应的id -r: --reverse,将排序结果以倒序方式显示 -S: 以文件大小进行排序 -t: 以修改时间排序 --help: 显示帮助信息
#文件名颜色的含义:
默认色代表普通文件。
绿色代表可执行文件。
红色代表tar包文件。
蓝色代表目录文件。
水红代表图像文件。
青色代表链接文件。
黄色代表设备文件。
#文件属性字段
字母“-”表示该文件是一个普通文件
字母“d”表示该文件是一个目录
字母“l”表示该文件是一个链接文件
字母“b" 表示该文件是块设备文件(block),一般置于/dev目录下,设备文件是普通文件和程序访问硬件设备的入口,一类特殊文件。
字母“c”表示该文件是一个字符设备文件(character)
字母“p”表示该文件为命令管道文件。与shell编程有关的文件。
字母“s”表示该文件为sock文件。与shell编程有关的文件。
2. cd
cd是Change Directory的缩写,这是用来切换工作目录的命令。cd命令是一个内置命令,可以通过type命令来进行查看。
cd [相对路径或绝对路径或特殊符号] 注意:不加参数的时候,默认是切换到用户家目录 特殊符号包括: ~:表示用户主目录 -:表示前一个工作目录 ..:表示上级目录 .:表示当前目录
3. cp
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或者目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件的时候,目标文件参数必须是一个已经存在的目录,否则会出现错误。
cp [选项] [参数] -a:此参数的效果和同时指定"-dpR"参数相同 -d:当复制符号连接时,把目标文件或者目录也建立为符号连接,并指向与源文件或者目录连接的原始文件或者目录 -f:强行复制文件或者目录,不管目标目录或者文件是否存在 -i:覆盖文件之前先询问用户 -l:对源文件建立的硬链接,而非复制文件 -p:保留源文件或者目录的属性 -R/r:递归处理,将指定目录下的所有文件与子目录一并处理 -s:对源文件建立符号连接,而非复制文件 -u:使用这个参数只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件 -S:在备份文件时,使用指定的后缀"SUFFIX"代替文件的默认后缀 -b:覆盖已经存在的文件目标前将目标文件备份 -v:详细显示命令执行的操作 源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项 目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录
4. pwd
pwd命令以绝对路径的方式显示用户当前的工作目录。命令将当前目录的全路径名称(从根目录)写入标准输出。全部目录使用 / 分隔。第一个 / 表示根目录,最后一个目录是当前目录。执行pwd命令可以立刻得出您目前所在的工作目录的绝对路径名称。
pwd(选项) --help:显示帮助信息; --version:显示版本信息。
5. mv
mv命令用来对文件或者目录重新命名,或者将文件从一个目录移动到另外一个目录中。source表示源文件或者目录,target表示目标文件或目录。如果将一个文件移动到一个已经存在的目标文件中,则目标文件内容将会被覆盖。
mv命令可以用来将源文件移动到一个目标文件,或将一组文件移动至一个目标目录中。源文件将被移动至目标文件有两种不同的结果:
- 如果目标文件是某一目录文件的路径,源文件会被移动到此目录下,且文件名不变。
- 如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。
注意:mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。
mv 选项 参数 --backup=<备份模式>:若需覆盖文件,则覆盖前先行备份; -b:当文件存在时,覆盖前,为其创建一个备份; -f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录; -i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。 --strip-trailing-slashes:删除源文件中的斜杠“/”; -S<后缀>:为备份文件指定后缀,而不使用默认的后缀; --target-directory=<目录>:指定源文件要移动到目标目录; -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。 源文件:源文件列表 目标文件:如果“目标文件”是文件名则在移动文件的同时,将其改名为“目标文件”;如果“目标文件”是目录名则将源文件移动到“目标文件”下。
6. rm
rm命令可以删除一个目录中的一个或多个文件或者目录,也可以将某个目录以及其下属的所有文件及子目录均删掉。对于链接文件,只是删除整个链接文件,而原有的文件保持不变。
注意:使用rm 命令要格外的小心,因为一旦删除了一个文件,就没法再恢复它。所以在删除之前,最好再看看文件的内容,确认是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统就会要求你一个一个去确认是否要删除。这时,必须要输入y进行确认,才可以删除文件。否则不会删除文件。
rm 选项 参数 -d:直接把欲删除的目录的硬连接数据删除成0,删除该目录; -f:强制删除文件或目录; -i:删除已有文件或目录之前先询问用户; -r或-R:递归处理,将指定目录下的所有文件与子目录一并处理; --preserve-root:不对根目录进行递归操作; -v:显示指令的详细执行过程。 文件:指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R
7. rmdir
rmdir用来删除空目录。目录不在被使用时,或者磁盘空间已达到使用限定值,就需要删除失去使用价值的目录。利用rmdir命令可以从一个目录中删除一个或多个空的子目录。该命令从一个目录中删除一个或多个子目录,其中dirname表示目录名。如果dirname中没有指定的路径,则删除当前目录下由dirname指定的目录。如果dirname中包含路径,则删除指定位置的目录。删除目录的时候一定要对其父目录有写权限。
注意:子目录被删除之前应该是空目录。就是说,该目录中的所有文件必须用rm命令全部,另外,当前工作目录必须在被删除目录之上,不能是被删除目录本身,也不能是被删除目录的子目录。
rmdir 选项 参数 -p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除; --ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息; -v或-verboes:显示命令的详细执行过程; --help:显示命令的帮助信息; --version:显示命令的版本信息。 目录列表:要删除的空目录列表。当删除多个空目录时,目录名之间使用空格隔开。
8. rename
rename命令用字符串替换的方式批量改变文件名。
rename 参数 源字符串:将文件名需要替换的字符串 目标字符串:将文件名中含有的原字符替换成目标字符串 文件:指定要改变文件名的文件列表 例如:将main1.c重命名为main.c rename main1.c main.c main1.c rename支持通配符 ? 可以替代单个字符 * 可以替代多个字符 [charset] 可以替代charset集中的任意单个字符 如果使用rename foo foo0 foo?,会把foo1到foo9的文件重命名为foo01到foo09,重命名的文件只是有4个字符长度名称的文件,文件名中的foo被替换为foo0。 rename 支持正则表达式 rename "s/AA/aa/" * #把文件名中的AA替换成aa rename "s//.html//.php/" * #把.html后缀的改成.php后缀 rename "s/$//.txt/" * #把所有文件的文件名都以.txt结尾 rename "s//.txt//" * #把所有以.txt结尾的文件名的.txt删除
9.touch命令
touch命令一是可以用于把已存在的文件的时间标签更新为系统当前的时间而数据不会发生改变,二是可以创建新的空文件。
touch [选项] [参数] -a:只更改存储时间。 -c:不建立任何的文件。 -d:使用指定的时间,而非现在的时间 -f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。 -m:只更改变动时间 -r:把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同 -t:使用指定的日期时间,而非现在的时间 --help:显示帮助信息 --version:显示版本信息
10.tree命令
tree命令是以树状图列出目录的内容。
tree [选项] [参数] -a:显示所有的文件和目录 -A:使用ASNI绘图字符显示树状图而非以ASCII字符组合 -C:在文件或者目录清单加上色彩,便于区分各种类型 -d:显示目录名称而不是内容 -D:列出文件或者是目录的更改时间 -f:在每个文件或者目录之前显示完整的相对路径名称 -F:在执行文件,目录,Socket,符号链接,管道名称各自上"*","/","@","|"号 -g:列出文件或者目录的所属群组名称,没有对应的名称时,则显示群组的识别码。 -i:不以阶梯状列出文件和目录的名称 -I:不显示符号范本样式的文件或者时目录名称 -l:如果遇到性质是符号链接的目录,直接列出该链接所指向的原始目录。 -n:不在文件和目录清单加上色彩。 -N:直接列出文件或者目录名称,包括控制字符。 -p:列出权限标识。 -P:只显示符合范本样式的文件和目录名称。 -q:用“?”号取代控制字符,列出文件和目录名称。 -s:列出文件和目录大小。 -t:用文件和目录的更改时间排序。 -u:列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。 -x:将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该目录予以排除在寻找范围外。
11.basename命令
basename命令是用于打印目录或者文件的基本名称。
basename [选项] [参数] --help:显示帮助信息 --version:显示版本号 参数: 文件:带路径信息的文件 后缀:可选参数,指定去除的文件后缀字符串
12.dirname命令
dirname命令是去除文件名中的非目录部分,仅显示与目录有关的内容。dirname会读取指定路径名保留最后一个/以及其后面的字符,删除其他的部分,并写结果到标准输出。如果最后一个/后没有字符,dirname命令使用倒数第二个/,并忽略其后面的所有字符。
dirname [选项] [参数] --help:显示帮助信息 --version:显示版本号 例如: dirname /a/b/ 显示:/a dirname /a/b/c 显示/a/b
13.chattr命令
chattr是专门用来修改文件和目录的隐藏属性的,只有root用户才可以使用。
chattr [+-=] [属性参数] 文件或者目录名称 + 表示给文件或目录添加属性,- 表示移除文件或目录拥有的某些属性,= 表示给文件或目录设定一些属性。 a:让文件或目录仅供附加用途; b:不更新文件或目录的最后存取时间; c:将文件或目录压缩后存放; d:将文件或目录排除在倾倒操作之外; i:不得任意更动文件或目录; s:保密性删除文件或目录; S:即时更新文件或目录; u:预防意外删除。 -R:递归处理,将指令目录下的所有文件及子目录一并处理; -v<版本编号>:设置文件或目录版本; -V:显示指令执行过程;
14.lsattr命令
lsattr是用于查看文件的第二扩展文件系统属性使用的。
lsattr [选项] [参数] -E:可以显示设备属性的当前值,但是这个当前值是从用户设备数据库中获得的,而不是直接从设备获取的。 -D:显示属性的名称,属性的默认值,描述和用户是否可以修改属性值的标志。 -R:递归处理方式 -V:显示指令的版本信息。 -a:列出目录中所有的文件,包括隐藏文件。 lsattr经常使用的几个选项-D,-E,-R这三个选项不可以一起使用,它们是互斥的,经常使用的还有-l,-H,使用lsattr时,必须指出具体的设备名,用-l选项指出要显示设备的逻辑名称,否则要用-c,-s,-t等选项唯一的确定某个已存在的设备。
15.file命令
file命令主要是用来显示给定文件的类型的。
file [选项] [参数] -b:列出辨识结果时,不显示文件名称; -c:详细显示指令执行过程,便于排错或分析程序执行的情形; -f<名称文件>:指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称; -L:直接显示符号连接所指向的文件类别; -m<魔法数字文件>:指定魔法数字文件; -v:显示版本信息; -z:尝试去解读压缩文件的内容。 -i:输出文件的MIME类型字符串 PS:MIME 类型,即 Multipurpose Internet Mail Extensions,称为多用途互联网邮件扩展类型,用来标识和记录文件的打开方式,一些常见的类型包括: text/plain:普通文本。 text/html:HTML文本。 application/pdf:PDF文档。 application/msword:Word文档。 image/png:PNG图片。 mage/jpeg:JPEG图片。 application/x-tar:TAR文件。 application/x-gzip:GZIP文件。
16.md5sum命令
md5sum命令主要是用来校验传输内容的一致性的。
md5sum [选项] [参数] -b:二进制模式读取文件; -t或--text:把输入的文件作为文本文件看待; -c:从指定文件中读取MD5校验和,并进行校验; --status:验证成功时不输出任何信息; -w:当校验不正确时给出警告信息。