Linux文件和目录操作命令
pwd:打印当前所在的路径pwd是"print working directory"的缩写,功能是打印当前工作目录的绝对路径。通常情况下,使用pwd命令不需要带任何参数。
tree:以树形结构显示目录下的内容功能是以树形结构列出指定目录下的所有内容,包括所有文件、子目录及子目录里的目录和文件。 语法格式:tree [选项] [目录] 参数选项和说明:
mkdir:创建目录语法格式:mkdir [选项] [目录] 参数选项和说明:
[[email?protected] 19:07:31 /test]# mkdir -m 333 /test/hhzz [[email?protected] 19:07:59 /test]# ls -ld /test/hhzz d-wx-wx-wx. 2 root root 4096 Nov 10 19:07 /test/hhzz [[email?protected] 19:08:09 /test]# 创建多级目录的技巧: 在/hai目录下创建两个目录:dir1和dir2,并且dir1、dir2目录下都有dir11、dir22: [[email?protected] 19:11:44 ~]# mkdir -p /hai/{dir1,dir2}/{dir11,dir22} [[email?protected] 19:20:35 ~]# tree /hai /hai ├── dir1 │?? ├── dir11 │?? └── dir22 └── dir2 ├── dir11 └── dir22 6 directories,0 files [[email?protected] 19:20:39 ~]# 在/hello目录下创建dir1old~dir6old,比起它们的目录下都有目录a~i: [[email?protected] 19:20:39 ~]# mkdir -p /hello/dir{1..6}old/{a..i} [[email?protected] 19:22:59 ~]# tree /hello /hello ├── dir1old │?? ├── a │?? ├── b │?? ├── c │?? ├── d │?? ├── e │?? ├── f │?? ├── g │?? ├── h │?? └── i ├── dir2old │?? ├── a │?? ├── b │?? ├── c │?? ├── d │?? ├── e │?? ├── f │?? ├── g │?? ├── h │?? └── i ├── dir3old │?? ├── a │?? ├── b │?? ├── c │?? ├── d │?? ├── e │?? ├── f │?? ├── g │?? ├── h │?? └── i ├── dir4old │?? ├── a │?? ├── b │?? ├── c │?? ├── d │?? ├── e │?? ├── f │?? ├── g │?? ├── h │?? └── i ├── dir5old │?? ├── a │?? ├── b │?? ├── c │?? ├── d │?? ├── e │?? ├── f │?? ├── g │?? ├── h │?? └── i └── dir6old ├── a ├── b ├── c ├── d ├── e ├── f ├── g ├── h └── i 60 directories,0 files [[email?protected] 19:23:07 ~]# touch:创建空文件和改变文件和目录的时间戳语法格式:touch [选项] [文件]
*使用stat命令可以查看文件的时间戳属性 [[email?protected] 01:34:00 ~]# touch new [[email?protected] 01:34:41 ~]# stat new File: ‘new’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 77463376 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2019-03-03 01:34:41.667556384 +0800 Modify: 2019-03-03 01:34:41.667556384 +0800 Change: 2019-03-03 01:34:41.667556384 +0800 Birth: - [[email?protected] 01:34:48 ~]# 文件的时间戳属性分为访问时间、修改时间、状态改变时间。 修改最后访问时间: [[email?protected] 01:34:48 ~]# touch -a new [[email?protected] 01:35:29 ~]# stat new File: ‘new’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 77463376 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2019-03-03 01:35:29.616560085 +0800 Modify: 2019-03-03 01:34:41.667556384 +0800 Change: 2019-03-03 01:35:29.616560085 +0800 Birth: - [[email?protected] 01:35:32 ~]# 修改最后修改的时间: [[email?protected] 01:35:32 ~]# touch -m new [[email?protected] 01:36:06 ~]# stat new File: ‘new’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 77463376 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2019-03-03 01:35:29.616560085 +0800 Modify: 2019-03-03 01:36:06.113562902 +0800 Change: 2019-03-03 01:36:06.113562902 +0800 Birth: - [[email?protected] 01:36:08 ~]# 指定时间属性修改/创建文件: [[email?protected] 01:36:08 ~]# touch -d 20201111 new2 [[email?protected] 01:37:37 ~]# ls -l new2 -rw-r--r-- 1 root root 0 Nov 11 2020 new2 ls:显示目录下的内容及其相关属性信息语法格式:ls [选项] [文件或目录]
显示完整的时间属性: [[email?protected] 02:21:57 ~]# ls -al --time-style=long-iso total 736696 dr-xr-x---. 9 root root 4096 2019-03-03 01:46 . dr-xr-xr-x. 26 root root 4096 2019-01-16 19:49 .. -rw-r--r--. 1 root root 0 2018-10-23 04:38 04:38:10.tex -rw-r--r--. 1 root root 0 2018-10-24 08:41 1 drwxr-xr-x. 3 root root 16 2018-10-24 08:38 122 drwxr-xr-x. 5 root root 32 2018-10-24 08:39 156 ls -F命令的输出: 1.目录的结尾会加上"/" 2.普通文件结尾会加上"*" 3.套接字文件结尾会加上"=" 4.FIFOs文件会加上"|" 5.符号链接文件会加上"@" cp:复制文件或目录语法格式:cp [选项] [源文件] [目标文件] 参数说明:
mv:移动或重命名文件语法格式:mv [选项] [目标文件] 参数选项说明:
rm:删除文件或目录语法格式:rm [选项] [文件或目录]
ln:硬链接与软链接语法格式:ln [选项] [源文件或目录] [目标文件或目录]
硬链接和软链接: 硬链接:硬链接生成的是普通文件(-字符),相当于文件的另外一个入口。具有相同的inode节点号的多个文件互为硬链接文件。删除硬链接文件或者源文件的任何一个,文件实体没有被真正删除。 软链接:目标文件不能事先存在,软链接生成的是符号链接文件(l类型),类似于windows的快捷方式,里面存放的是源文件的路径,指向源文件实体。即使删除了源文件,软链接文件依然存在,但是无法访问源文件。软链接和源文件是不同类型的文件,inode号也不同。 注意:对于目录,不可以创建硬链接,但是可以创建软链接。需要注意的是,目录是可以跨文件系统的。 find:查找目录下的文件语法格式:find [选项] [路径] [操作语句] find命令的详细语法: find [选项] [路径] [expression] [expression包含options、tests、actions三个模块 ] Options参数说明:
Tests模块参数说明:
Actions模块参数说明:
例子: 1.查找当前目录下,两天内受到访问的文件:[[email?protected] 20:15:26 ~]# find . -atime -2 2.查找/var/log/下6天以前以".log"结尾的被修改的文件:[[email?protected] 20:23:07 ~]# find /var/log/ -mtime +6 -name "*.log" 3.查找当前目录下的所有目录:[[email?protected] 20:23:26 ~]# find . -type d 4.查找当前目录下不是目录的文件:[[email?protected] 21:33:23 ~]# find . ! -type d 5.按照目录或者文件的权限来查找文件:[[email?protected] 21:34:29 ~]# find . -perm 666 6.查找当前目录下大小是100字节的文件文件:[[email?protected] 21:35:27 ~]# find . -size 100c 7.在当前目录下查找更改时间比文件file.txt新的文件:[[email?protected] 21:37:50 ~]# find . -newer file.txt 8.查找当前目录下更改时间在14天以前的文件,并且在-exec选项中使用rm命令删除:[[email?protected] 21:43:20 ~]# find . -type f -mtime +14 -exec rm {} ; 9.使用-exec选项的安全模式-ok:[[email?protected] 21:43:20 ~]# find . -type f -mtime +14 -ok rm {} ; xargs:将标准输入转换为命令行参数语法格式:xargs [选项] 参数说明:
多行文本输入变单行: [[email?protected] 22:01:58 /text]# cat tt.txt 1 2 3 4 5 6 7 8 9 10 11 [[email?protected] 22:02:49 /text]# xargs <tt.txt 1 2 3 4 5 6 7 8 9 10 11 通过-n参数指定每行的输出个数: [[email?protected] 22:04:14 /text]# xargs -n 3 < tt.txt 1 2 3 4 5 6 7 8 9 10 11 使用-d选项自定义分隔符: [[email?protected] 06:20:54 /]# echo hzdXhzdXhzdXhzdX | xargs -d X -n 2 hzd hzd hzd hzd rename:重命名文件语法格式:rename from to file from:代表需要替代或者需要处理的字符(一般是文件名的一部分) to:把前面的from代表的内容替换为to代表的内容 file:需要处理的文件。 [[email?protected] 06:24:47 /test]# ls access_www_2018-10-01.log access_www_2018-10-08.log access_www_2018-10-15.log access_www_2018-10-22.log access_www_2018-10-02.log access_www_2018-10-09.log access_www_2018-10-16.log access_www_2018-10-23.log access_www_2018-10-03.log access_www_2018-10-10.log access_www_2018-10-17.log access_www_2018-10-24.log access_www_2018-10-04.log access_www_2018-10-11.log access_www_2018-10-18.log access_www_2018-10-25.log access_www_2018-10-05.log access_www_2018-10-12.log access_www_2018-10-19.log access_www_2018-10-06.log access_www_2018-10-13.log access_www_2018-10-20.log access_www_2018-10-07.log access_www_2018-10-14.log access_www_2018-10-21.log [[email?protected] 06:24:48 /test]# rename .log .jpg * [[email?protected] 06:25:14 /test]# ls access_www_2018-10-01.jpg access_www_2018-10-08.jpg access_www_2018-10-15.jpg access_www_2018-10-22.jpg access_www_2018-10-02.jpg access_www_2018-10-09.jpg access_www_2018-10-16.jpg access_www_2018-10-23.jpg access_www_2018-10-03.jpg access_www_2018-10-10.jpg access_www_2018-10-17.jpg access_www_2018-10-24.jpg access_www_2018-10-04.jpg access_www_2018-10-11.jpg access_www_2018-10-18.jpg access_www_2018-10-25.jpg access_www_2018-10-05.jpg access_www_2018-10-12.jpg access_www_2018-10-19.jpg access_www_2018-10-06.jpg access_www_2018-10-13.jpg access_www_2018-10-20.jpg access_www_2018-10-07.jpg access_www_2018-10-14.jpg access_www_2018-10-21.jpg chattr:改变文件的扩展属性语法格式:chattr [选项] [模式] [文件或者目录] 选项参数说明:
模式参数说明:
设置只能往文件里面追加内容,但是不能删除文件: [[email?protected] 07:13:09 ~/test2]# chattr +a chattr.txt [[email?protected] 07:13:24 ~/test2]# lsattr chattr.txt -----a---------- chattr.txt [[email?protected] 07:13:28 ~/test2]# root用户也无法删除,只能追加内容: [[email?protected] 07:13:28 ~/test2]# rm -f chattr.txt rm: cannot remove ‘chattr.txt’: Operation not permitted [[email?protected] 07:14:28 ~/test2]# echo hello >> chattr.txt [[email?protected] 07:14:49 ~/test2]# cat chattr.txt hello [[email?protected] 07:14:53 ~/test2]# 给文件加锁,设置为只读: [[email?protected] 07:16:34 ~/test2]# touch chattr2.txt [[email?protected] 07:17:00 ~/test2]# chattr +i chattr2.txt [[email?protected] 07:17:09 ~/test2]# rm -f chattr2.txt rm: cannot remove ‘chattr2.txt’: Operation not permitted [[email?protected] 07:17:23 ~/test2]# echo hi >> chattr2.txt -bash: chattr2.txt: Permission denied [[email?protected] 07:17:34 ~/test2]# (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |