linux文件目录操作的相关命令
mkdir rmdir tree touch stat cp mv rm
mkdir
功能说明:建立空目录
语 法:mkdir [-p][--help][--v][-m <目录属性>][目录名称]
补充说明:mkdir可建立目录并同时设置目录的权限。
选项:
- -m<目录属性> 建立目录时同时设置目录的权限。
[[email protected]_18_121_centos ~]# mkdir -m 775 qin [[email protected]_18_121_centos ~]# ll drwxrwxr-x 2 root root 4096 Jul 29 10:45 qin
- -p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录
[[email protected]_18_121_centos ~]# mkdir -p ./1/12/15/258 [email protected]_18_121_centos ~]# tree 1/ 1/ `-- 12 `-- 15 `-- 258 3 directories, 0 files
一般用法
mkdir 文件名
rmdir (remove directory)
功能说明:删除目录。
语 法:rmdir [-p][--help][目录...]
补充说明:当有空目录要删除时,可使用rmdir指令。
选 项:
- -p 删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除。
[email protected]_18_121_centos ~]# tree 1/ 1/ `-- 12 `-- 15 `-- 258 [[email protected]_18_121_centos ~]# rmdir -p 1/12/15/258/ [[email protected]_18_121_centos ~]# tree 1 1 [error opening dir] 0 directories, 0 files
注意:只能删除空目录
tree
功能说明:以树状图列出目录的内容。
语 法:tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...]
补充说明:执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。
选 项:
- -L level:指定显示的层级:例如-L 2 显示两层层级
- -C 在文件和目录清单加上色彩,便于区分各种类型。
- -d 只显示目录名称而非内容。
- -f 在每个文件或目录之前,显示完整的相对路径名称。
- -D 列出文件或目录的更改时间。
- -p 列出权限标示。
- -s 列出文件或目录大小。
- -t 用文件和目录的更改时间排序。
[[email protected]_18_121_centos /]# tree -CdL 1 . |-bin -> usr/bin |-boot |-data |-dev |-etc |-home |-lib -> usr/lib [[email protected]_18_121_centos /]# ll total 68 lrwxrwxrwx. 1 root root 7 Apr 21 15:00 bin -> usr/bin dr-xr-xr-x. 4 root root 4096 Jul 27 11:34 boot drwxr-xr-x 2 root root 4096 Apr 21 22:18 data drwxr-xr-x 18 root root 2860 Jul 27 11:33 dev -rw-r--r-- 1 root root 39 Jul 27 11:41 qiu
stat
功能说明:显示inode内容。
语 法:stat [文件或目录]
补充说明:stat以文字的格式来显示inode的内容。(显示文件源数据)
[[email protected] ~]# stat acd 文件:"acd" 大小:12 块:8 IO 块:4096 普通文件 设备:803h/2051d Inode:141620596 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:admin_home_t:s0 最近访问:2016-07-28 14:18:22.969424559 +0800 最近更改:2016-07-28 14:18:00.772595552 +0800 最近改动:2016-07-28 14:18:00.772595552 +0800 创建时间:-
更改是指文件内数据的改变,改动是指文件元数据的改变
touch
功能说明:新建文件,改变文件或目录时间戳。
语 法:touch [-acfm][-d <日期时间>][-r <参考文件或目录>][-t <日期时间>][--help] [--version][文件或目录...] 或 touch [-acfm][--help][--version][日期时间][文件或目录...]
补充说明:使用touch指令可更改文件或目录的日期时间,包括存取时间和更改时间。
选 项:
- -a或--time=atime或--time=access或--time=use 只更改存取时间。
- -c或--no-create 指定的文件路径不存在时不建立任何文件。
- -d <时间日期> 使用指定的日期时间,而非现在的时间。
- -m或--time=mtime或--time=modify 只更改变动时间。
- -r<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同。
- -t<日期时间> 使用指定的日期时间,而非现在的时间。格式 [[CC]YY]MMDDhhmm[.ss]
第一种用法:直接创建指定文件
[[email protected] ~]# touch aaa [[email protected] ~]# ll aaa -rw-r--r--. 1 root root 0 7月 29 12:35 aaa
第二种用法:如果文件存在则不改变文件内容,只改变文件的所有时间戳为当前时间
[[email protected] ~]# stat acd 文件:"acd" 大小:8 块:8 IO 块:4096 普通文件 设备:803h/2051d Inode:141620596 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:admin_home_t:s0 最近访问:2016-07-29 12:29:07.347575849 +0800 最近更改:2016-07-29 12:29:07.347575849 +0800 最近改动:2016-07-29 12:29:07.347575849 +0800 创建时间:- [[email protected] ~]# touch acd [[email protected] ~]# stat acd 文件:"acd" 大小:8 块:8 IO 块:4096 普通文件 设备:803h/2051d Inode:141620596 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:admin_home_t:s0 最近访问:2016-07-29 12:30:20.045015827 +0800 最近更改:2016-07-29 12:30:20.045015827 +0800 最近改动:2016-07-29 12:30:20.045015827 +0800 创建时间:- [[email protected] ~]# cat acd sdasdsa
- 不带任何参数
2.修改指定的时间戳为当前时间 -a和-m
[[email protected] ~]# touch -m acd [[email protected] ~]# stat acd 文件:"acd" 大小:8 块:8 IO 块:4096 普通文件 设备:803h/2051d Inode:141620596 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:admin_home_t:s0 最近访问:2016-07-29 12:46:03.353749084 +0800 最近更改:2016-07-29 12:46:55.286349022 +0800 最近改动:2016-07-29 12:46:55.286349022 +0800 创建时间:- [[email protected] ~]# touch -a acd [[email protected] ~]# stat acd 文件:"acd" 大小:8 块:8 IO 块:4096 普通文件 设备:803h/2051d Inode:141620596 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:admin_home_t:s0 最近访问:2016-07-29 12:49:23.479207425 +0800 最近更改:2016-07-29 12:46:55.286349022 +0800 最近改动:2016-07-29 12:49:23.479207425 +0800 创建时间:-
3.修改文件的时间戳为指定时间 -t(可以和-a -m结合使用)
-t 选项语法组成 : [[CC]YY]MMDDhhmm [.SS] CC - 年份的前两位 YY - 年份的后两位 MM - 月份 [01-12] DD - 日期 [01-31] hh - 时 [00-23] mm - 分 [00-59] SS - 秒 [00-61]
[[email protected] ~]# touch -at 100001120958.27 acd [[email protected] ~]# stat acd 文件:"acd" 大小:8 块:8 IO 块:4096 普通文件 设备:803h/2051d Inode:141620596 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:admin_home_t:s0 最近访问:1000-01-12 09:58:27.000000000 +0800 最近更改:2016-07-29 12:46:55.286349022 +0800 最近改动:2016-07-29 12:51:40.923148630 +0800 创建时间:-
4.以某个文件为参考文件或目录修改另一个文件 -r
[[email protected] ~]# stat aaa 文件:"aaa" 大小:0 块:0 IO 块:4096 普通空文件 设备:803h/2051d Inode:141620555 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:admin_home_t:s0 最近访问:2016-07-29 12:35:52.925451496 +0800 最近更改:2016-07-29 12:35:52.925451496 +0800 最近改动:2016-07-29 12:35:52.925451496 +0800 创建时间:- [[email protected] ~]# stat aaa 文件:"aaa" 大小:0 块:0 IO 块:4096 普通空文件 设备:803h/2051d Inode:141620555 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:admin_home_t:s0 最近访问:1000-01-12 09:58:27.000000000 +0800 最近更改:2016-07-29 12:46:55.286349022 +0800 最近改动:2016-07-29 13:03:42.748588076 +0800 创建时间:-
特殊
touch支持通配符?如果原本有aaa acd asd三个文件若用touch a??则 不会创建名a??的文件,而是把aaa acd asd 这三个文件的时间戳刷新,但如果用touch a????则会因为匹配不到文件而创建一个a????的文件
-rw-r--r--. 1 root root 0 7月 29 12:35 aaa -rw-r--r--. 1 root root 8 7月 29 12:46 acd -rw-r--r--. 1 root root 0 7月 28 14:16 asd [[email protected] ~]# touch a?? [[email protected] ~]# ll 总用量 20 -rw-r--r--. 1 root root 0 7月 29 13:06 aaa -rw-r--r--. 1 root root 8 7月 29 13:06 acd -rw-r--r--. 1 root root 0 7月 29 13:06 asd [[email protected] ~]# touch a???? [[email protected] ~]# ll 总用量 20 -rw-r--r--. 1 root root 0 7月 29 12:16 12345678 -rw-r--r--. 1 root root 0 7月 29 12:15 1234567890 -rw-r--r--. 1 root root 0 7月 29 12:44 201401120958.27 -rw-r--r--. 1 root root 0 7月 29 13:10 a???? -rw-r--r--. 1 root root 0 7月 29 13:06 aaa -rw-r--r--. 1 root root 8 7月 29 13:06 acd -rw-------. 1 root root 1521 7月 20 00:53 anaconda-ks.cfg -rw-r--r--. 1 root root 0 7月 29 13:06 asd
cp (copy)
cp也可以改名
文件复制的原理,首先在目标地址创建一个空文件,然后把要复制的文件内容以数据流的方式流入这个空文件,使这个文件越来越大最后一样。复制的只是文件里面的数据,元数据不发生改变。
功能说明:复制文件或目录。
语 法:cp [-abdfilpPrRsuvx][-S <备份字尾字符串>][-V <备份方式>[源文件或目录][目标文件或目录] [目的目录]
补充说明:cp指令用在复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,而最后的目的地并非是一个已存在的目录,则会出现错误信息
选 项:
- -d或--no-dereference 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
- -f或--force 强行复制文件或目录,不论目标文件或目录是否已存在。
- -i或--interactive 覆盖既有文件之前先询问用户。
- -p或--preserve 保留源文件或目录的属性。
- -v或--verbose 显示指令执行过程。
- -r 或-R 递归处理,将指定目录下的文件与子目录一并处理。
- -a或--archive 此参数的效果和同时指定"-dpR"参数相同。
1.无参数复制
直接复制:只能复制文件到指定目录 [[email protected] etc]# cp /etc/issue /testdir/ [[email protected] etc]# ll /testdir/ 总用量 8 -rw-r--r--. 1 root root 23 7月 29 13:33 issue -rw-r--r--. 1 root root 44 7月 29 13:27 system-release 复制软连接,会把直接复制软连接所指向的文件,并且改名为软连接的名字 [[email protected] etc]# cp system-release /testdir/ [[email protected] etc]# ll /testdir/ 总用量 4 -rw-r--r--. 1 root root 44 7月 29 13:27 system-release [[email protected] etc]# ll /etc/system-release lrwxrwxrwx. 1 root root 14 7月 20 00:09 /etc/system-release -> centos-release [[email protected] etc]# ll /etc/centos-release -rw-r--r--. 1 root root 44 7月 26 09:46 /etc/centos-release
2.复制目录 -r
[[email protected] etc]# cp -r /etc/yum /testdir/ [[email protected] etc]# ll /testdir/ 总用量 12 -rw-r--r--. 1 root root 23 7月 29 13:33 issue -rw-r--r--. 1 root root 44 7月 29 13:27 system-release drwxr-xr-x. 6 root root 4096 7月 29 13:39 yum
3.-d或--no-dereference 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
[[email protected] etc]# cp -d /etc/system-release /testdir/ [[email protected] etc]# ll /testdir/ 总用量 0 lrwxrwxrwx. 1 root root 14 7月 29 13:43 system-release -> centos-release //只复制了软连接文件
4.其他
mv (move)
功能说明:移动或更名现有的文件或目录。
语 法:mv [-bfiuv][源文件或目录][目标文件或目录]
补充说明:mv可移动文件或目录,或是更改文件或目录的名称。
选 项:
- -b或--backup 若需覆盖文件,则覆盖前先行备份。
- f 或--force 若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文 件或目录。
- i 或--interactive 覆盖前先行询问用户。
- -v或--verbose 执行时显示详细的信息。
用法:1.移动某文件至指定目录
[[email protected] etc]# cp /etc/issue /testdir/ [[email protected] etc]# ll /testdir/ 总用量 4 -rw-r--r--. 1 root root 23 7月 29 13:56 issue
2.移动文件或目录并改名
[[email protected] etc]# ls /root/ 201401120958.27 acd file1 issue 视频 下载 [[email protected] etc]# mv /root/issue /root/qzx123 [[email protected] etc]# ls /root/ 201401120958.27 acd file1 qzx123 视频 下载
3.覆盖前的备份 -b
[[email protected] etc]# mv -bi /testdir/issue /root/ mv:是否覆盖"/root/issue"? y [[email protected] etc]# ls /root/ issue~ issue
rm (remove)
功能说明:删除文件或目录。
语 法:rm [-dfirv][--help][--version][文件或目录...]
补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数"-r",否则预设仅会删除文件。
选 项:
- -d或--directory 直接把欲删除的目录的硬连接数据删成0,删除该目录。
- -f或--force 强制删除文件或目录。
- -i或--interactive 删除既有文件或目录之前先询问用户。
- -r或-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
- -v或--verbose 显示指令执行过程。
一般执行方式: rm -rf /PATH/TO/DIR (危险操作,请完全确认再后执行)
[[email protected] ~]# ls /testdir/ issue yum [[email protected] ~]# rm -r /testdir/* rm:是否删除普通文件 "/testdir/issue"? rm:是否进入目录"/testdir/yum"? [[email protected] ~]# ls /testdir/ issue yum [[email protected] ~]# rm -rf /testdir/* [[email protected] ~]# ls /testdir/ [[email protected] ~]#
默认
[[email protected] ~]# alias rm alias rm=‘rm -i‘
且默认回车为否不删除 不进入 ”n“
注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录:(模拟回收站)
时间: 2024-10-19 13:11:17