说明;写 Linux Command Line 学习笔记 系列文章本意只是记录自己学习 《Linux Command Line 》 这本书的过程中看到的一些自己没有留意到的地方,因此绝大多数内容只是记录了相关知识点而没有实际扩展内容,纯粹是为了自己后期回顾时有迹可循。另外,因为直接看的原版书,所以有些地方中英混杂。更详细地学习建议去阅读原书即可。 linux 倡导所谓的一切皆文件,那我们怎么在系统中查找到自己想要的文件呢。 搜索路径名数据库,并且输出每个与给定字符串相匹配的文件名 可以结合 需要明确的一点: find 最简单的用法是给定一个或者多个目录名去搜索 如 find 下有三层操作方式,分别是** options,tests 和 actions**(详细的信息可以查看 help 帮助文档) test 根据文件名和文件大小进行搜索 其他可能会用到的几个 test 条件 options 使用逻辑操作符建立逻辑关系 查找权限不是 0600 的文件和权限不是 0700 的目录方法 Predefined Actions 预定义操作 xargs 从标准输入接受输入,并把输入转换为一个命令的参数 如果文件名中有空格,需要使用-print0 find 其他参数 压缩 不要压缩已经压缩过的文件 bizp2 速度慢压缩程度更高 相应命令有 bunzip2; bzcat 存档 多个文件整合为一个文件的过程 tar 参数分为 mode 和 options,必须首先包含一个操作模式 归档 展开 配合 配合 同步 rsync 具体用法待补充 本文作者:思考问题的熊 版权声明:本博客所有文章除特别声明外,均采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND 4.0) 进行许可。 如果你对这篇文章感兴趣,欢迎通过邮箱订阅我的 「熊言熊语」会员通讯,我将第一时间与你分享肿瘤生物医药领域最新行业研究进展和我的所思所学所想,点此链接即可进行免费订阅。
Searching For Files 文件查找
locate 查找文件的简单方法
locate bin/zip 搜索 bin 路径下所有包含zip的路径名grep一起使用提高效率locate 的搜索数据库由updatedb程序创建,并不是实时更新。因此找到的文件不是最新的updatedb可以使用root进行手动更新find查找文件的复杂方法
find是一个非常神奇的命令find ~ (搜索自己的家目录)
find ~ -type d-type属于测试操作,用来限定查找类型b 块设备文件
c 字符设备文件
d 目录
f 普通文件
l 符号链接
find ~ -type f -name "\*.JPG" -size +1M
这里需要加入双引号防止 shell 展开路径名
+1M 表示大于 1M,不加任何符号表示精确匹配
-name pattern 用指定的通配符模式匹配的文件和目录
-iname pattern 类似-name 测试条件,不区分大小写
-nouser 匹配的文件和目录不属于一个有效用户
-nogroup 匹配的文件和目录不属于一个有效的组
-size n 匹配的文件大小为 n
-type c 匹配的文件类型是 c
-user name 匹配的文件或目录属于某个用户,通过用户名或用户 ID 来表示
-group name 匹配的文件和目录属于一个组,用组名或组 ID 来表示
-cmin n 匹配的文件和目录的内容或属性最后修改时间正好在 n 分钟之前
-ctime n 匹配的文件和目录的内容和属性最后修改时间在 n\*24 小时之前
-newer file 匹配的文件和目录的内容早于指定的文件。当编写 shell 脚本,做文件备份时非常有帮助
-empty 匹配空文件和目录
-inum n 匹配的文件的 inode 号是 n,找到某个特殊 inode 的所有硬链接
-perm mode 匹配的文件和目录的权限是指定的 mode。mode 用八进制或符号表示。
find ~ \( -type f -not -perm 0600 \) -or \( -type d -not -perm 0700 \)
-and 符两边的测试条件都是真则匹配(默认操作)
-or 若两边的任一测试条件为真则匹配
-not 若后面的测试条件是真则匹配
() 把测试条件和操作符组合起来控制逻辑优先级,使用时用反斜杠进行转义
-delete 删除匹配文件
-ls 对匹配的文件执行等同的 ls -dils 命令。并将结果发送到标准输出。
-print 把匹配文件的全路径名输送到标准输出。如果没有指定其它操作,这是默认操作。
-quit 一旦找到一个匹配,退出。
find ~ -iname ‘*.jpg’ -print0 | xargs –null ls -l-depth 指导 find 程序先处理目录中的文件,再处理目录自身
-maxdepth levels 当执行测试条件和行为的时候,设置目录深度
-mindepth levels 在应用测试条件和行为之前,设置目录深度
-mount 指导 find 程序不要搜索挂载到其它文件系统上的目录
Archiving And Backup 存档备份
gzip/gunzip 压缩后会取代原始文件 权限和时间戳不变-c 把输出写入到标准输出,并且保留原始文件。等价于 zcat
-d 解压缩,等价于 gunzip
-f 强制压缩
-l 显示文件的压缩比例和大小
-r 递归压缩目录
-t 测试压缩文件的完整性
-v 显示压缩过程中的信息
-number 设置压缩指数。1 最快,9 最小,默认值 6
-A, 将一存档与已有的存档合并
-c, 建立新存档
-d, 比较存档与当前文件的不同之处
--delete 从存档中删除
-r, 附加具体路径到存档结尾
-t, 列出存档内容
-u, 将较新的文件附加到存档中
-x, 从存档展开文件
tar cvf FileName.tar DirName (f 要紧跟内容)tar xvf FileName.targzip压缩解压
tar zxvf FileName.tar.gztar zcvf FileName.tar.gz DirNamebzip2
tar cjf FileName .tar.bzDirNametar jxvf FileName .tar.bz
rsync options source destinationsource 和 destination 指代
[user@]host:path 形式存在rsync://[user@]host[:port]/path 指定
· 分享链接 https://kaopubear.top/blog/2017-09-22-LinuxCommandLine5/