Linux常用命令详解find/tar/scp本文详细介绍Linux中三个最常用的命令find文件查找、tar归档压缩、scp远程拷贝助你提升命令行操作效率。一、find命令强大的文件查找工具find命令可以根据权限、拥有者、修改日期、文件大小等条件查找文件是Linux命令行必备技能。1.1 基本语法find[path][option][expression]1.2 基本用法列出所有文件find# 当前目录及子目录所有文件find.# 同上find.-print# 同上按名称查找find./test-nameabc.txt# 精确匹配find./test-name*.php# 通配符匹配find./test-iname*.Php# 忽略大小写查找文件位置find/-name文件名# 从根目录查找locate文件名# 使用locate更快需先updatedb1.3 限制查找深度find./test-maxdepth2-name*.php# 最多查找2层子目录find./test-maxdepth1-name*.php# 只查找当前目录find./test-mindepth2-name*.php# 至少第2层开始查找1.4 反向查找find./test-not-name*.php# 查找不是php的文件find./test!-name*.php# 同上1.5 组合条件AND条件默认find./test-nameabc*!-name*.php# 以abc开头且不是phpOR条件find-name*.php-o-name*.txt# php或txt文件1.6 按类型查找find./test-typef-nameabc*# 只查找文件find./test-typed-nameabc*# 只查找目录1.7 多目录查找find./test ./dir2-typef-nameabc*# 同时在多个目录查找1.8 查找隐藏文件find~-typef-name.*1.9 按权限查找find.-typef-perm0664# 查找权限为0664的文件find.-typef!-perm0777# 查找权限不是0777的文件find/-maxdepth2-perm/us2/dev/null# 查找SUID文件1.10 按所有者/用户组查找find.-userbob# 查找属于bob的文件find.-userbob-name*.php# 组合条件find/var/www-groupdeveloper# 查找属于developer组的文件1.11 按时间查找选项说明-mtime NN天前修改的文件-atime -N最近N天内访问的文件-cmin -N最近N分钟内状态改变的文件-mmin -N最近N分钟内修改的文件find/-mtime50# 50天前修改的文件find/-atime-50# 最近50天内访问的文件find/-mtime50-mtime-100# 50-100天内修改的文件find/home/bob-cmin-60# 最近60分钟内状态改变find/-mmin-60# 最近1小时内修改1.12 按文件大小查找find/-size50M# 大小为50M的文件find/-size50M-size-100M# 50M-100M之间的文件查找最大/最小文件# 最大的5个文件find.-typef-execls-s{}\;|sort-n-r|head5# 最小的5个文件find.-typef-execls-s{}\;|sort-n|head51.13 查找空文件/目录find/tmp-typef-empty# 空文件find~/-typed-empty# 空目录1.14 对结果执行命令使用ls列出信息find.-execls-ld{}\;删除找到的文件find/tmp-typef-name*.txt-execrm-f{}\;find/tmp-typed-namedirToRemove-execrm-r-f{}\;二、tar命令文件归档与压缩2.1 基本概念归档将多个文件打包成一个文件.tar压缩减小文件体积.gz, .bz2, .xz等2.2 常用选项选项说明-c创建归档-x解开归档-t列出归档内容-v显示过程-f指定文件名-zgzip压缩/解压-jbzip2压缩/解压-Jxz压缩/解压-C指定解压目录2.3 常用操作创建归档tar-cvfarchive.tar file1 file2 dir1# 打包tar-czvfarchive.tar.gz file1 file2# 打包并gzip压缩tar-cjvfarchive.tar.bz2 file1 file2# 打包并bzip2压缩查看归档内容tar-tvfarchive.tartar-tzvfarchive.tar.gz解压归档tar-xvfarchive.tar# 解包tar-xzvfarchive.tar.gz# 解压gziptar-xjvfarchive.tar.bz2# 解压bzip2tar-xzvfarchive.tar.gz-C/target/dir# 解压到指定目录2.4 实用技巧压缩目录排除某些文件tar-czvfarchive.tar.gz--exclude*.log/path/to/dir增量备份tar-czvfbackup.tar.gz-gsnapshot /path/to/dir三、scp命令安全的远程文件拷贝scpsecure copy基于SSH协议可在Linux服务器之间安全地复制文件和目录。3.1 基本语法scp[参数][原路径][目标路径]3.2 常用参数参数说明-r递归复制整个目录-p保留原文件的修改时间、访问时间和权限-P指定端口号大写P-q不显示传输进度条-v显示详细输出-C启用压缩-l限制带宽Kbit/s3.3 从远程服务器下载到本地复制文件# 格式scp 用户名远程IP:远程路径 本地路径scproot43.224.34.73:/home/lk/test.txt /root/# 指定端口scp-P22root43.224.34.73:/home/lk/test.txt /root/复制目录scp-rroot43.224.34.73:/home/lk /root/3.4 从本地上传到远程服务器复制文件scp/root/test.txt root43.224.34.73:/home/lk/复制目录scp-r/root/lk root43.224.34.73:/home/lk/cpfile3.5 实战示例示例1从B服务器下载文件到A服务器在A服务器上操作scp-rroot43.224.34.73:/home/lk /root示例2从A服务器上传文件到B服务器scp-r/root/lk root43.224.34.73:/home/lk/cpfile3.6 注意事项SSH免密登录如果配置了SSH免密登录使用scp时无需输入密码带宽限制使用-l参数限制带宽避免占用过多网络资源安全性scp传输是加密的可能比rsync稍慢但更安全系统负载scp不占资源不会显著提高系统负荷四、对比与选择需求推荐命令查找文件find本地打包压缩tar远程传输少量文件scp远程同步大量文件rsync快速定位文件locate参考资源find命令详解scp命令详解tar命令详解