文件目录相关命令

云霖
2023-12-01

移动文件

mv
	移动文件相当于剪切:

mv:将Linux当中的某个文件移动到指定目录

    格式:
        mv [选项][原来的文件路径][现在的文件路径]
        mv命令后面既可以跟绝对路径也可以跟相对路径
        
    选项:
        -i :覆盖前提示
        
eg :
例1 :将1.txt移动到/tmp目录中
[root@localhost ~]$ mv 1.txt /tmp

例2 :将/root/2.txt 移动到/tmp目录中
[root@localhost ~]$ mv /root/2.txt /tmp

例3 :将/var/log目录移动到/tmp目录中
[root@localhost ~]$ mv /var/log/ /tmp/

例4 :将/root目录中的所有文件移动到/tmp目录中
[root@localhost ~]$ mv /root/*  /tmp/

例5 :将/root目录下的abc1 ~ abc9 移动到/tmp目录中
    
    第一种方式:
        [root@localhost ~]$ mv /root/abc{1..9} /tmp/

	第二种方式:
		[root@localhost ~]$ touch abc{1..9}
		[root@localhost ~]$ ls
		abc1  abc2  abc3  abc4  abc5  abc6  abc7  abc8  abc9
		[root@localhost ~]$ mv /root/abc* /tmp/
		[root@localhost ~]$ ls /tmp/
		abc1  abc2  abc3  abc4  abc5  abc6  abc7  abc8  abc9

	第三种方式:
		[root@localhost ~]$ touch abc{1..9}
		[root@localhost ~]$ 
		[root@localhost ~]$ ls
		abc1  abc2  abc3  abc4  abc5  abc6  abc7  abc8  abc9
		[root@localhost ~]$ mv /root/abc? /tmp/
		[root@localhost ~]$ ls
		[root@localhost ~]$ ls /tmp/
		abc1  abc2  abc3  abc4  abc5  abc6  abc7  abc8  abc9


例6 :将/root 目录中的abc1 ~ abc9 移动到/tmp 目录中
    [root@localhost ~]$ touch abc{1..19}
	[root@localhost ~]$ ls
	abc1  abc10  abc11  abc12  abc13  abc14  abc15  abc16  abc17  abc18  abc19  abc2  abc3  abc4  abc5  abc6  abc7  abc8  abc9
	[root@localhost ~]$ mv /root/abc? /tmp/
	[root@localhost ~]$ ls
	abc10  abc11  abc12  abc13  abc14  abc15  abc16  abc17  abc18  abc19
	[root@localhost ~]$ ls /tmp/
	abc1  abc2  abc3  abc4  abc5  abc6  abc7  abc8  abc9
	

例7:将/root目录下abc1 ~ abc99 移动到/tmp目录中

	[root@localhost ~]$ mv /root/abc{?,??} /tmp/

复制

cp : copy的缩写

格式: 
    cp [选项(非必须)] [原路径][新路径]
		

	选项:
		-r : 递归复制目录
		-a : 保证某些属性不变
		-i : 增加覆盖提示
		-p : 保留原有文件的属性
		-d : 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
例1:将1.txt复制到/tmp目录
		[root@localhost ~]$ cp 1.txt /tmp/
		[root@localhost ~]$ ls
		1.txt  2.txt  3.txt  4.txt  test
		[root@localhost ~]$ ls /tmp/
		1.txt

例2:将/root目录下的test文件夹及其内部的文件复制到/tmp中
        [root@localhost ~]# cp -r /root/test /tmp

		
例3:将/var/log目录及其目录中的所有内容全部复制到/tmp目录
	
		[root@localhost ~]$ cp -r /var/log /tmp/
		[root@localhost ~]$ ls /tmp/
		1.txt  ks-script-AD1ezZ  log  vmware-root_935-3980298462  yum.log
		[root@localhost ~]$ ls /var/log/
		anaconda           boot.log-20210915  dmesg.old           maillog   spooler             vmware-vgauthsvc.log.0    yum.log
		audit              btmp               firewalld           messages  tallylog            vmware-vmsvc-root.log
		boot.log           cron               grubby_prune_debug  rhsm      tuned               vmware-vmtoolsd-root.log
		boot.log-20210914  dmesg              lastlog             secure    vmware-network.log  wtmp
		[root@localhost ~]$ ls /tmp/log/
		anaconda           boot.log-20210915  dmesg.old           maillog   spooler             vmware-vgauthsvc.log.0    yum.log
		audit              btmp               firewalld           messages  tallylog            vmware-vmsvc-root.log
		boot.log           cron               grubby_prune_debug  rhsm      tuned               vmware-vmtoolsd-root.log
		boot.log-20210914  dmesg              lastlog             secure    vmware-network.log  wtmp

例3: 仅将/var/log/messages、/var/log/boot.log、/var/log/vmware-network.log三个文件复制到/tmp
	
		[root@localhost ~]$ cp /var/log/{messages,boot.log,vmware-network.log} /tmp/
		
		
例4: 将/etc/system-release 复制到 /tmp目录下
	
		[root@localhost ~]$ cp -d /etc/system-release /tmp/

例5: 复制2.txt到/tmp目录中,要求不更改其创建时间

		知识储备:
			stat : 查看文件创建时间的
			
		[root@localhost ~]$ cp -p 5.txt /tmp/


补充:
 Esc + .  : 上一条命令的最后一个元素
	stat  : 查看文件详细属性

批量复制
	[root@localhost ~]# while true;do echo "Hello World" >> 1.txt; don

删除

Linux 中一切皆文件,删除文件有两种方式:
    1. 物理删除: 直接删除
    2. 逻辑删除: 将文件隐藏,没有直接删除

   rm :一个物理删除文件的命令

 格式 :
        rm[选项][被删除文件的路径]
        

解决rm命令误操作
	将rm命令改一个名称。



    第一种:修改别名
        [root@localhost tmp]$ alias rm="fgfbasdb"
		[root@localhost tmp]$ rm -rf /tmp/* 
		-bash: fgfbasdb: command not found
	
	第二种:将rm命令修改名字
	    [root@localhost tmp]$ mv rm abcdefg

选项 :

-i : 删除前提示
-r : 递归删除目录及其内容
-f : 忽略不存在的文件和参数,从不提示


例1:将/tmp目录下所有的文件全部删除
    [root@localhost tmp]$ \rm /tmp/* 
	[root@localhost tmp]$ ls

例2:删除/tmp目录下的test目录
    第一种情况:空目录
	
		rm -r test/
	
	第二种情况:非空目录
	
		rm -rf test/
		    相等于
		(rm -r -f test/)
	
例3:删除/tmp目录下以abc开头的文件

	[root@localhost tmp]$ rm -f /tmp/abc*
	[root@localhost tmp]$ ls
	test1  test10  test2  test3  test4  test5  test6  test7  test8  test9

查看命令的真实路径

which :查看命令的真实路径

格式 :
    which [具体的命令]
    

例1:查看rm命令的路径
    [root@localhost tmp]$ which rm
	alias rm='rm -i'
		/usr/bin/rm

系统别名

alias
    
格式:
    alias xxx='命令'
    
    alias   : 查看系统别名
    alias rm='xxx'  : 设置系统别名
    
不使用别名,就在命令之前添加\
    [root@localhost ~]# \rm 1.txt

vi/vim编辑器

用来修改文件
 vi :
vim : vim是vi的升级版(颜色)

vim的三种模式
    命令:进入修改文件的第一个模式,主要功能是使用各种快捷键
    末行:对文本进行处理,比如:替换
    编辑:用来修改文件内容

格式:
    vim [选项(非必须)][被修改文件的路径]
vi /vim编辑器的原理
        1. vi xxx.txt(检查.xxx.txt.swp 是否存在)
        2. 读取xxx.txt的内容
        3. 创建一个名为.xxx.txt.swp 的隐藏文件
        4. 修改文件(修改.xxx.txt.swp文件)
        5. 保存文件 (.xxx.txt.swp文件存入xxx.txt中)
        6. 退出编辑(删除.xxx.txt.swp文件)

选项:
-r :继续输入编辑,把原来没有保存的内容通过-r形式依然继续输入

安装vim

	知识储备:
	
		1、进入/etc/yum.repos.d目录
		
			cd /etc/yum.repos.d
		
		2、删除所有的文件
		
			rm -rf ./*
			
		3、编辑CentOS-Base.repo

			vi CentOS-Base.repo
			
			[base]
			name="Hello World"
			baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/
			gpgcheck=0
		
		4、安装
			yum install vim -y

指令

所有模式适用:
    上下左右键 :控制光标的位置

末行模式

        w :保存
        q : 退出编辑
      wp/x: 保存并退出
        !:强制退出(不保存退出,必须跟在指令后面)
        n : 直接跳转到第 n 行
   set nu : 显示行号
 set nonu : 取消行号
 
作用开始的行号,作用结束的行号
        s#[被修改的内容]#[修改的内容]#g
        0,410 s#man#MAN#g
        
        % : 代表的是文本有多少行

解决vim编辑异常

1. 删除.1.txt.swp
2. 继续编辑(-r)
    [root@localhost ~]# vim -r 1.txt
3. 放弃编辑(-n)
    [root@localhost ~]# vim -n 1.txt

命令模式,光标快速移动快捷方式

    i :进入编辑模式 (在光标之前输入)
    a : 进入编辑模式 (在光标之后输入)
    o : 进入剪辑模式 (在光标所在位置另起一行输入)
    0 : 光标跳转到行首
    $ : 光标跳转到行尾
   gg : 跳转到首行
    G : 跳转到末行
   dd : 删除当前行
  ndd : 在光标所在位置向下删除 n 行
    u : 回撤(windows中的ctrl + z)

ctrl + r : 撤回回撤
yy : 复制光标所在行
nyy : 在光标坐在位置向下复制 n 行
p : (大写) 粘贴到光标的下一行
P : (小写) 粘贴到光标的上一行
/ : [搜索的内容] 在文本中搜索相关内容,
按 n 键,下一个, 按 shift + n 键/N,上一个

    :set ic : 忽略大小写

可视化编辑

    x :删除选中的内容
    ctrl + v : 可视化编辑模式  (选中内容)         
   shift + i : 进入可视化编辑模式       
	        1. 按 shift + i 进入可视化编辑模式
	        2. 编辑一行
	        3. 按 Esc 退出编辑
	        4. 按向下键(可按可不按)

实时监控文件内容变化

tail -f [要监控的文件]

演示Vim编辑异常
    1. 查看vim进程
       [root@localhost ~]# ps -ef | grep vim
      
    2. 杀死vim进程
        [root@localhost ~]# kill -9 pid
 类似资料: