Linux命令2
目录:
复制文件或目录-cp
格式:
cp 想要复制的文件(/etc/abc) 复制的地方(/mnt/abc)可以改名也可以不改
选项:
-f 强制覆盖目标同名(为什么正常情况下会提醒,因为自带别名可以 alias cp查看)
-i 覆盖目标同名文件或目录时提醒用户确认
-p 复制时保持源文件的权限、属主及时间标记等属性不变(功能不够强大)
-a 完整保留所有的信息,更强大的保留属性,连链接文件也可以保留
-r 复制文件夹使用,同时复制文件夹下的文件(表示递归复制所有文件及子目录)
-u 差异备份(只对文件夹起作用)
//


//经过-a所属还是123,没有-a则变成了root

//
一次性复制多个文件,只能跟目录并且目录要存在,不能加名字


//第一次是将123文件拷贝到112目录并且改名7.bak
//第二次是将123复制到7.bak并且成为子目录
//第三次是因为已经存在7这个文件了
//幂等性

//只在源文件比目标文件新,或目标文件 不存在时才进行复制
rm删除
-f 强制删除
-r 递归删除 rm -fr /*

可以在文件夹里面删这个文件夹,删除后这个文件夹里面的内容消失,离开这个文件夹后,文件夹本身也没了

如果一些特殊名字的文件比如-f无法删除,可以在前面加上路径
[root@localhost ~]# touch ./-a
-开头的文件
[root@localhost ~]# ls
[root@localhost ~]# rm -f -a
#删除不掉
[root@localhost ~]# rm -f ./-a
#需要加路径
[root@localhost ~]# touch ./-a
[root@localhost ~]# rm -- -a
rm:是否删除普通空文件 "-a“?y
面试题:
空间满了:加盘(但是满)
为了快速解决:删除没有用处的大文件
删除没有释放空间为什么:有别的用户在使用→1、杀死正在使用文件的进程 2、使用echo “1” >删除的文件名 将1导入删除文件名(相当于完全覆盖了内容)
经验:
建完1个服务器你先建一些没有用的文件放在那里
ls of |wc -l(ls of是显示正在打开的文件,wc-l统计有多少行。|管道符的意思是wc -l使用ls of的成果)
df -h(看磁盘用量)
管道符 |
将 前一个命令的结果 当做 对象 传递给下一个命令
grep 过滤你想要的字符
改名mv
格式:
mv 源文件/目录 名字(改名只能1个1个的改) 移动或者改名

有2和3.txt文件,输入mv 3.txt 2.txt, 3名字变成了2,并且原本的2.txt消失

除了rh其他全部移动到1.abc12文件夹中
rename 旧字符 新字符 目标文件
rename txt txt.bak * 将txt文件改成txt.bax文件
//rename可以批量改名但是只能相同格式的。建议写脚本

txt格式变成txt.txt
找文件
查找命令/文件存放目录-which(echo $PATH)
which ls
查找文件或者目录-find
特点:采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找
格式:
find [查找范围] [查找条件表达式] [处理动作]
处理动作:对符合条件的文件做操作,默认输出至屏幕(print)
常用查找条件类型:
按名称查找 -name 根据目标文件的名称进行查找,允许使用"*"和"?"( iname不区分大小写)通配符(通配符记得加“”)

按大小查找 -size 根据目标文件的
大小进行查找,"+"和"-"设置超过或者小于指定的大小为条件
常用的容量包括k(k是小写)、M、G
-size [+/-] 单位 find -size 1k

按文件属主查找 -user 根据文件是否属于目标用户进行查找
按照文件类型查找 -type 根据文件类型进行查找(文件类型包括f普通文件、目录d、块设备文件b字符......
按inode -inum 根据文件inode号查找
最大搜索目录深度 -maxdepth 数字 将你的文件已分级的形式查找
按照权限查找 -mindepth 数字 同上

-nouser #查找没有属主的文件
-nogroup #查找没有属组的文件
-name "文件名称" #支持使用glob,如:*, ?, [], [^],通配符要加双引号引起来
-inum n #按inode号查找
-links n #链接数为n的文件
1G 和1024M 区别:无视大小写,1g-1=0所以是0-1g的范围,1024-1=1023,所以是1023-1024M


↑不写范围是默认当前文件夹 不写查找条件是默认全部显示
find默认是先文件夹后文件
//或与且的优先级
o or a and
find /etc -maxdepth 2 查找最高第二层的文件
-mindepth 3

\\文本三剑客:awk、sed、grep
处理动作:
-delete 删除查找到的文件
-ok COMMAND {} \; 对查找到的每一个文件执行由COMMAND指定的命令对于每个文件执行命令之前,都会交互式要求用户确认
-exec COMMAND {} \; 对查找到的每一个文件执行由COMMAND指定的命令

-atime [+|-]#
find -atime +3
#表示[#,#+1)
+# #表示[#+1,∞]
-# #表示[0,#)
补充:
locate 查找是根据linux里面的数据库,但是数据库是过一段时间更新,所以刚刚创建的要等会才能找到(locate 文件名)locate查找速度很快,常用来查找常年不变的文件。如果没有更新可以手动 updatedb 但是很耗硬件资源,别乱用

lsblk 看硬盘
df -h 磁盘空余容量(h是人性化)
cat /etc/redhat-release 查看系统版本
lscpou 看CPU
free 看内存
arch 看机器架构 x86
总结:
cp
cp 源文件/目录 目标文件或者目录
-i 提示覆盖同名文件
-f 强制覆盖不提示
-a 强力保留权限
-p 只保留一部分
-u 选择掌握 备份差异
rm
rm -rf 文件或目录
-r 递归删除
-f 强制删除
系统删不掉:1、有其他用户正在使用→echo "1" > 大文件
mv 移动或改名
mv 源文件 目标文件 如果路径一致→改名 如果不一致→移动
rename 选择掌握
locate
通过数据库去找文件,速度快,但是不即时(使用updatedb,但是慎用)
which 命令
find
-name 名字查找 可以使用通配符(记得加上"")
-size 大小 范围 kB M G 在没有加减的时候写的单位越小越好
-user 根据文件的主人
-type 文件类型-f普通 -d目录 -s套接字 -l链接 -p管道 -c字符 -b块设备
-maxdepth 最大层次
-mindepth 最小层次
-mtime 时间 +3 第四天 到 正无穷 -3 是0-2 3是第三天
-nouser 无主用户 用户被删除
-inum inode号
-empty 空文件
find的处理动作
-ls 长格式
-delete 删除
-ok 执行一次询问一次
-exec 直接的不要询问
总结
1、熟记cp及选项
2、会用rm和mv,rm使用务必小心
3、寻找文件的重点是find
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)