linux文件与目录管理笔记
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | ### Linux文件与目录管理 ---------- 绝对路径: / 相对路径:不以/开头的 当前目录 . 上一个工作目录 - 用户主目录 ~ root账户的主目录是 /root 其他用户是 /home/ 账户名 cd ~leyi 切换到leyi账户的主目录,即 /home/leyi pwd 显示当前目录 mkdir -p 111 /222 创建多级目录 -p 参数 rmdir -p 111 /222 当删除了222后111是空目录则222也会被删除 rmdir 仅能删除空目录 ** ls 常用命令 ** -a 全部 -d 目录 -l 长数据串输出(包含权限和属性) ls -l 的别名( alias ) ll 蓝色是目录 白色是一般文件 ** cp 复制文件或目录 ** -i 覆盖时询问(y /n ) -r 递归复制 -p 复制文件连权限 用户 时间 一起复制 (备份时常用) -a 相当于 -d -p -r -d如果源文件是链接文件复制链接文件而非文件本身 -s 创建软了链接(或者叫符号链接) -l hard link(硬链接或者叫实体链接) **硬链接文件和源文件一样,软链接相当于一个快捷方式 ** echo '1234' >1.txt cp 1.txt . /s_link -s // 软连接 cp 1.txt . /h_link -l // 硬链接 ** rm 删除文件或目录 ** -i 默认会提示 -r 递归删除 -f 强制删除 rm h* -rf 删除h开头的的文件 *为任意多个字符 ** mv 移动文件和目录或者更改名字 ** mv 1.txt 2.txt 改名 mv 1.txt d 将1.txt移动到d目录 mv 1.txt 2.txt d 如果有多个来源文件或目录 则最后一个为目标目录 ** basename (文件名) 和 dirname (目录名)** mkdir 11 /22/33/44 .txt -p basename 11 /22/33/44 .txt 返回 44.txt dirname 11 /22/33/44 .txt 返回 11 /22/33 **文件内容查看 ** cat 从文件第一行开始显示内容 tac 从最后一行开始显示内容,反着显示 ( cat 反着写) more 一页一页的显示 more /etc/sudo .conf less more 的功能+可以翻页 less /etc/sudo .conf enter或者space 翻页 q 退出查看 :f 查看当前行号和文件大小 /向下搜索的内容 可以搜索关键字 ?向上搜索关键字 pageDown pageUp Home End head 只看头几行 -n 自定义查看前多少行 head /etc/sudo .conf -n 5 查看前5行的数据 head /etc/sudo .conf -n -5 查看除了末尾5行的前面的所有数据 tail 只看尾几行 tail /etc/sudo .conf -n 5 查看后5行 通过管道符取5到10行 head /etc/sudo .conf -n 10 | tail -n 5 od -t a(ASCALL码输出) 非文本文件查看 od -t a /usr/bin/passwd **修改文件时间和创建文件 ** date 查看当前时间 mtime (modify time ) 文件内容变更后的时间 ll默认显示这个时间 ll -- time =mtime ??? 报错 ll 11.txt 就是显示的mtime ctime (change time ) 权限等更新后的时间 ll -- time =ctime atime (access time ) 文件被读取后的时间 (最后访问时间) ll -- time =atime 修改文件的内容后 mtime更新 ctime也改变了 mtime不更新 ll echo '123' >11.txt ll 修改权限后 ctime更新 mtime atime 不更新 ll -- time =ctime 11.txt chmod 777 11.txt ll -- time =ctime 11.txt 读取后 atime更新 ctime mtime 不更新 11 -- time =atime 11.txt cat 11.txt 11 -- time =atime 11.txt **; 分号可以分割指令,一次写多个指令执行 ** ll; touch 1.txt;ll ** touch 修改文件时间(只能修改mtime atime,不能修改ctime)或创建新文件 ** touch 11.txt 更新文件的所有时间 (mtime ctime atime) touch -d '20180615' 11.txt ll //mtime ll -- time =atime 11.txt //atime ll -- time =ctime 11.txt //ctime -c 修改 ctime -m 修改 mtime -t -d 都是修改日期或者时间 touch -t 201806151430 11.txt **root账户把自己主目录的11.txt复制到leyi的主目录,除了leyi其他用户不能写** cp ~ /11 .txt ~leyi chown leyi.leyi ~leyi /11 .txt chmod go-x ~leyi /11 .txt 或者 chmod 755 ~leyi /11 .txt ll ~leyi **文件和目录的默认权限 umask 0022 4位数 只看后三位** 数字代表被拿掉的权限 比如0022 代表被g拿掉了w o拿掉了w umask -S 可以看到 u=rwx,g=rx,o=rx **文件的特殊属性(隐藏属性) ** chattr 只能在传统的ext2-4文件系统上使用 chattr [-+=] 减少 增加 设置 某个属性 chattr +i 11.txt 设置不能被改名删除修改文件,不能动的意思 (只有root账户可用) chattr +a dir11 只能新增文件,不能删除修改文件 (只有root账户可用) lsattr 显示特殊属性 -a 隐藏文件的也显示 -d 显示目录 -R 包含目录里的文件 **查看文件类型** file 11.txt ASCLL 文本 **可执行程序文件名搜索** 两次tab 可以查看有多少命令可以用(全部的可执行程序) which 需要查找的可执行程序名字 根据PATH定义的路径去寻找可执行文件 which ls ; which cd ; which -a ls -a // 查找全部 **文件文件名搜索 ** whereis 特定目录中寻找文件文件名 -l 指定搜索的目录 -b 找binary二进制格式文件 whereis 11.txt ** find 硬盘搜索(比较慢) ** +n -n n 这里有点绕... find . -mtime 0 从现在时间开始到24小时之前 -mtime n天之前的一天之内的被改动过的文件名(0 今天 1 昨天) -mtime +n n天不含n之前被改动的内容(大于n天之前的,+0 昨天,+1前天) -mtime -n n天之内包含n天在内的被改动的文件名(-1 几天的) -user 用户名 查找某个用户的 find ~leyi -user leyi -group 查找某个群组的 find ~leyi -group leyi -nouser 没有用户的文件 -nogroup 没有群组存在的文件 -name xx 查找文件名为xx的文件 find ~leyi . -name *leyi* 查找文件名包含 leyi的文件 -size [+-] c:byte k:1kb 查找符合指定文件大小的文件 find . -size +10k 查找大于10k的文件 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用