您的位置:首页 > 运维架构 > Linux

linux文件目录操作的相关命令

2016-07-29 14:31 381 查看

linux文件目录操作的相关命令

mkdir rmdir tree touch stat cp mv rm

mkdir

功能说明:建立空目录

语 法:mkdir [-p][--help][--v][-m <目录属性>][目录名称]

补充说明:mkdir可建立目录并同时设置目录的权限。

选项:

-m<目录属性> 建立目录时同时设置目录的权限。
[root@VM_18_121_centos ~]# mkdir -m 775 qin
[root@VM_18_121_centos ~]# ll
drwxrwxr-x  2 root root 4096 Jul 29 10:45 qin

-p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录
[root@VM_18_121_centos ~]# mkdir -p ./1/12/15/258
root@VM_18_121_centos ~]# tree 1/
1/
`-- 12
`-- 15
`-- 258

3 directories, 0 files

一般用法
mkdir 文件名

rmdir (remove directory)

功能说明:删除目录。

语  法:rmdir [-p][--help][目录...]

补充说明:当有空目录要删除时,可使用rmdir指令。

选 项:

-p 删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除。
root@VM_18_121_centos ~]# tree 1/
1/
`-- 12
`-- 15
`-- 258
[root@VM_18_121_centos ~]# rmdir -p 1/12/15/258/
[root@VM_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 用文件和目录的更改时间排序。
[root@VM_18_121_centos /]#  tree -CdL 1
.
|-bin -> usr/bin
|-boot
|-data
|-dev
|-etc
|-home
|-lib -> usr/lib
[root@VM_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的内容。(显示文件源数据)

[root@localhost ~]# 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]第一种用法:直接创建指定文件
[root@localhost ~]# touch aaa
[root@localhost ~]# ll aaa
-rw-r--r--. 1 root root 0 7月  29 12:35 aaa
第二种用法:如果文件存在则不改变文件内容,只改变文件的所有时间戳为当前时间
[root@localhost ~]# 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
创建时间:-
[root@localhost ~]# touch acd
[root@localhost ~]# 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
创建时间:-
[root@localhost ~]# cat acd
sdasdsa

不带任何参数

2.修改指定的时间戳为当前时间 -a和-m
[root@localhost ~]# touch -m acd
[root@localhost ~]# 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
创建时间:-
[root@localhost ~]# touch -a acd
[root@localhost ~]# 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]
[root@localhost ~]# touch -at 100001120958.27 acd
[root@localhost ~]# 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
[root@localhost ~]# 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
创建时间:-
[root@localhost ~]# 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
[root@localhost ~]# touch a??
[root@localhost ~]# 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
[root@localhost ~]# touch a????
[root@localhost ~]# 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.无参数复制
直接复制:只能复制文件到指定目录
[root@localhost etc]# cp /etc/issue /testdir/
[root@localhost 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

复制软连接,会把直接复制软连接所指向的文件,并且改名为软连接的名字
[root@localhost etc]# cp system-release /testdir/
[root@localhost etc]# ll /testdir/
总用量 4
-rw-r--r--. 1 root root 44 7月  29 13:27 system-release
[root@localhost etc]# ll /etc/system-release
lrwxrwxrwx. 1 root root 14 7月  20 00:09 /etc/system-release -> centos-release
[root@localhost etc]# ll /etc/centos-release
-rw-r--r--. 1 root root 44 7月  26 09:46 /etc/centos-release
2.复制目录 -r
[root@localhost etc]# cp -r /etc/yum /testdir/
[root@localhost 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  当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
[root@localhost etc]# cp -d /etc/system-release /testdir/
[root@localhost 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.移动某文件至指定目录
[root@localhost etc]# cp /etc/issue /testdir/
[root@localhost etc]# ll /testdir/
总用量 4
-rw-r--r--. 1 root root 23 7月  29 13:56 issue
2.移动文件或目录并改名
[root@localhost etc]# ls /root/
201401120958.27  acd    file1            issue                 视频  下载
[root@localhost etc]# mv /root/issue  /root/qzx123
[root@localhost etc]# ls /root/
201401120958.27  acd    file1            qzx123                视频  下载
3.覆盖前的备份 -b
[root@localhost etc]# mv -bi /testdir/issue /root/
mv:是否覆盖"/root/issue"? y
[root@localhost 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 (危险操作,请完全确认再后执行)
[root@localhost ~]# ls /testdir/
issue  yum
[root@localhost ~]# rm -r /testdir/*
rm:是否删除普通文件 "/testdir/issue"?
rm:是否进入目录"/testdir/yum"?
[root@localhost ~]# ls /testdir/
issue  yum
[root@localhost ~]# rm -rf /testdir/*
[root@localhost ~]# ls /testdir/
[root@localhost ~]#
默认
[root@localhost ~]# alias rm
alias rm='rm -i'
且默认回车为否不删除 不进入 ”n“注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录:(模拟回收站)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  命令 linux mkdir