touch命令

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

选项:

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

  • -c:或--no-create 不建立任何文件;

  • -d:<时间日期> 使用指定的日期时间,而非现在的时间;

  • -f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;

  • -m:或--time=mtime或--time=modify 只更该变动时间;

  • -r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;

  • -t:<日期时间> 使用指定的日期时间,而非现在的时间;

mkdir命令

创建目录

选项:

  • -Z:设置安全上下文,当使用SELinux时有效;

  • -m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限;

  • -p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;

参数:

目录:指定要创建的目录列表,多个目录之间用空格隔开。

cp命令

用来将一个或多个源文件或者目录复制到指定的目的文件或目录。

选项:

  • -a:此参数的效果和同时指定"-dpR"参数相同;

  • -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;

  • -f:强行复制文件或目录,不论目标文件或目录是否已存在;

  • -i:覆盖既有文件之前先询问用户;

  • -l:对源文件建立硬连接,而非复制文件;

  • -p:保留源文件或目录的属性;

  • -R/r:递归处理,将指定目录下的所有文件与子目录一并处理;

  • -s:对源文件建立符号连接,而非复制文件;

  • -u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;

  • -S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;

  • -b:覆盖已存在的文件目标前将目标文件备份;

  • -v:详细显示命令执行的操作。

参数:

源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;

目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。

注意:所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。

实例:

我们在Linux下使用cp命令复制文件时候,有时候会需要覆盖一些同名文件,覆盖文件的时候都会有提示:需要不停的按Y来确定执行覆盖。文件数量不多还好,但是要是几百个估计按Y都要吐血了,于是折腾来半天总结了一个方法:

cp aaa/* /bbb

复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会略过aaa目录下的子目录。

cp -r aaa/* /bbb这次依然需要按Y来确认操作,但是没有忽略子目录。cp -r -a aaa/* /bbb依然需要按Y来确认操作,并且把aaa目录以及子目录和文件属性也传递到了/bbb。/cp -r -a aaa/* /bbb成功,没有提示按Y、传递了目录属性、没有略过目录。

mv命令

用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。

选项:

  • --backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;

  • -b:当文件存在时,覆盖前,为其创建一个备份;

  • -f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;

  • -i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。

  • --strip-trailing-slashes:删除源文件中的斜杠“/”;

  • -S<后缀>:为备份文件指定后缀,而不使用默认的后缀;

  • --target-directory=<目录>:指定源文件要移动到目标目录;

  • -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

实例:

将目录/usr/men中的所有文件移到当前目录(用.表示)中:

mv /usr/men/* .


rm命令

删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

选项:

  • -d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;

  • -f:强制删除文件或目录;

  • -i:删除已有文件或目录之前先询问用户;

  • -r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;

  • --preserve-root:不对根目录进行递归操作;

  • -v:显示指令的详细执行过程

dd命令

复制文件并对原文件的内容进行转换和格式化处理。建议在有需要的时候使用 dd 对物理磁盘操作,使用 dd 对磁盘操作时,最好使用块设备文件。

选项:

  • bs=<字节数>:将 ibs(输入)与 obs(输出)设成指定的字节数;

  • cbs=<字节数>:转换时,每次只转换指定的字节数;

  • conv=<关键字>:指定文件转换的方式;

  • count=<区块数>:仅读取指定的区块数;

  • ibs=<字节数>:每次读取的字节数;

  • obs=<字节数>:每次输出的字节数;

  • of=<文件>:输出到文件;

  • seek=<区块数>:一开始输出时,跳过指定的区块数;

  • skip=<区块数>:一开始读取时,跳过指定的区块数;

实例:

dd if=/dev/zero of=sun.txt bs=1M count=1


该命令创建了一个1M大小的文件sun.txt,其中参数解释:

  • if 代表输入文件。如果不指定if,默认就会从stdin中读取输入。

  • of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出。

  • bs 代表字节为单位的块大小。

  • count 代表被复制的块数。

  • /dev/zero 是一个字符设备,会不断返回0值字节(/0)。

file命令

用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程。

选项:

  • -f<名称文件>:指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称;

  • -b:列出辨识结果时,不显示文件名称;

  • -c:详细显示指令执行过程,便于排错或分析程序执行的情形;

  • -L:直接显示符号连接所指向的文件类别;

  • -m<魔法数字文件>:指定魔法数字文件;

  • -z:尝试去解读压缩文件的内容。

参数:

文件:要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。

实例:

显示文件类型

[root@localhost ~]# file install.loginstall.log: UTF-8 Unicode text[root@localhost ~]# file -b install.log   <== 不显示文件名称UTF-8 Unicode text[root@localhost ~]# file -i install.log   <== 显示MIME类别。install.log: text/plain; charset=utf-8[root@localhost ~]# file -b -i install.logtext/plain; charset=utf-8

显示符号链接的文件类型

[root@localhost ~]# ls -l /var/maillrwxrwxrwx 1 root root 10 08-13 00:11 /var/mail -> spool/mail[root@localhost ~]# file /var/mail/var/mail: symbolic link to `spool/mail'[root@localhost ~]# file -L /var/mail/var/mail: directory[root@localhost ~]# file /var/spool/mail/var/spool/mail: directory[root@localhost ~]# file -L /var/spool/mail/var/spool/mail: directory

以上就是小编给大家介绍的linux文件目录管理命令整理总结,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!