文件操作命令操作详解(Linux)

文件操作

  • 创建(touch)

    touch 文件名
    
  • 文件内容覆盖追加(echo)

    #覆盖>
    echo  'hello zyc53'  >a.txt  #将hello zyc53输出到a.txt文件中,会覆盖a.txt文件原来的内容,没有a.txt文件,则会创建
    
    #追加>>
    echo '吃饭了吗' >> b.txt #将显示内容追加到文件末尾,⽂件不存在则创建
    
  • 移动及文件后缀修改(mv/remame)

    mv  源文件A  目标文件B    #类似剪切,销毁原件
     
    mv  c.txt    ./D/ #将c.txt移动到子目录D下,⽂件名不变--------文件移目录里 
    mv  ../c.txt ./c1.txt #移动到当前⽬录下,改名为c1.txt------换名
    mv  e.txt    f.txt  #如果在同⼀个目录就是文件重命名 将e.txt重命名f.txt
    
    rename   's/tx/txt/'   2.tx     #将2.tx替换为2.txt
    
  • 拷贝文件(cp)

    cp  源⽂文件  ⽬标⽂文件
    sudo cp -r 源目录 目标目录 #递归拷贝目录 -------sudo cp -r 4/8 5/7/
    
  • 删除文件(rm)

    sudo rm ⽂件名
    sudo rm -i 文件名 #删除前逐⼀一确认
    sudo rm -f 文件名 #删除⽂文件不不带提示
    sudo rm -rf 目录名 #递归删除目录,不管目录是否为空***慎用
    
  • 查看文件内容

    (cat-内容输出/ head内容前几行 /tail内容最后几行/ watch实时显内容/ more从前往后看/less和more类似/stat文件详细信息)

    cat: 
    	cat ⽂件名 								#输出⽂件内容,从前往后输出,
    	cat ⽂件1 文件2 >> ⽂件3 		# 将两个⽂件合并指定文件
    	
    tac:
    tac 文件名
    														 #cat的反写,从后往前输出
    head:
    head -n N 文件名							 #显示文件的前几行,指定查看N行
    
    tail:
    tail -n  N 文件名					   #文件最后N行
    tail -f	cat 文件名						 #实时显示文件内容
    
    watch:
    watch -d -n 秒数 cat ⽂件名   #实时显示文件内容
    
    vim:
    vim A.txt. 										#编辑A.txt文件内容
    
    more:
    more ⽂件名 										#从前往后查看,可以翻屏 ,不能往前翻 回车一行行查看,空格翻屏(f翻屏) q退出
    
    less:
    less 文件名 										#和more类似,可以前翻页,g⾸页 G尾页,b前翻页,空格和f后翻页,q退出
    
    stat:
    stat 文件名 										#查看文件详细信息
    
    #⽂件的三个时间:
    atime: accesstime 						#访问时间
    mtime:modifytime 							#修改时间
    ctime: changetime 						#修改状态时间(修改文件元数据)
    
  • 文件名及内容(find/grep)

    • find(搜索指定文件)
    find [路径] [参数] [⽂件名]
    			-name  按⽂件名查找
    			-iname 按⽂件名查找,不区分⼤小写
    			-mtime +/-n 						 #-n表示n天以内修改的文件,+n表示修改超过n天的文件 
    			-user 									 #按⽂件属主查找
    			-size [+/-]n[c/k/M/G] 	 #查找⽂文件长度为n块,+表示大于,-表示小于; c是字节
          -perm 权限数值					  #按照文件权限进行查找
          -maxdepth N							 #目录深度
          -ls											 #以列表形式显示
          -type [f/d/l]						 #按类型查看
          -exec 执⾏行shell命令,形式: -exec command {} \
          
    find / -name  "⽂件名"  				 #从根目录查找指定文件名的⽂件,如果不指定目录,则从当前目录查找
    find . -name  "⽂件名" 				 #从当前目录查找指定文件名的文件
    find   -name  "⽂件名"					 #从当前目录查找指定文件名的文件
    
    find /csl/sh1702 -name "2.txt"  #查找指定目录的文件
    find /tools -mtime -3 					#查找tools目录下修改时间是3天以内的文件
    find /tools -mtime +3 					#查找tools目录下修改时间是3天以上的文件
    find -mtime -3 -maxdepth 1 -ls
    find /tools -size 12c 					#查找长度为12字节的文件
    find /var -size +10k -size -100k -name '*.log' 		#在/var目录下,查找10-100k
    find -size +10k -maxdepth 1 -ls										
    
    #按⽂件的所属⽤户查找
    find -maxdepth 1 -user root			
    
    #删除当前目录及其子目录下的所有后缀为txt的文件,注意{}和\中间有空格,最后有⼀个;
    find . -name '*.txt' -exec rm {} \;
     
    #只查找当前目录下,权限是700的⽂文件,并以列表形式显示 
    find -perm 700 -maxdepth 1 -ls
    sudo find -maxdepth 2 -name '1.txt' -ls
    
    • grep
    #grep 是global search regular expression(RE) and print out the line的缩写。即全面搜索正则表达式并把行打印出来。
    
    grep [options] 'pattern' filename 
    			-i 不不区分⼤小写
    			-c 只显示匹配行的数量量
    			-r 递归查找子目录
    			-l 列出⽂件内容符合指定的范本样式的文件名称。 
    			-n 显示行号
    			-w 只匹配单词,不是匹配单词一部分
    			-E 按正则表达式搜索
    			--color 以不同颜⾊显示匹配的关键字 
    			--include '*.py' #仅搜索py⽂文件 --exclude '*.py' #不不搜索py⽂文件
    
    # 在1.txt搜索this,要按照完整单词的模式进行匹配,并且显示匹配行 
    grep -n -w 'this' 1.txt
    
    #在当前目录下所有文件中搜索this,并不同颜⾊显示关键字 
    sudo grep 'this' * --color
    
    显示匹配行数
    sudo grep -c 'this' 1.txt
    
    搜索指定的1.txt,递归查找子目录
    grep -r -w -l 'this' --include '1.txt'
    
    # 显示当前目录下所有的文件,不显示目录 
    ls -la | grep -E '^-'
    
    | 管道符,他可以将前一个命令的输出作为后⼀个命令的输入
    
  • 命令查找(which/whereis)

    which 命令名 #查找命令
    
    whereis ⽂件名 #只能搜索命令、源文件、⼆进制文件
    
  • 文件内容统计(wc)

    wc [options] [⽂件列表]
    		-l 统计有多少行
    		-w 统计有多少单词
    $ wc -l  /etc/passwd #统计passwd有多少⽤户
    
  • 文件逐行读入(awk)

    awk '{pattern + action}' {filenames}
    
    cat /etc/passwd |awk -F ':' '{print $1}' 			# $1显示第⼀一列列 -F 指 定分割符为':'
    																							# 列数从左向右: 1,2,3...
    
  • 报告或删除文件中重复的行,只比较相邻行(uniq)

    用法:	uniq [选项]... [文件]
    						-c 				//在每行前加上表示相应行⽬出现次数的前缀编号 
    						-d 				//只输出重复的⾏
    						-D 				//只输出重复的⾏,有⼏行输出⼏行
    						-i 				//忽略略⼤大⼩小写
    
  • 升序排序(sort)

    sort将⽂件/文本的每⼀行作为⼀个单位,相互⽐较,⽐较原则是从⾸字符向后,依次按ASCII码值进⾏⽐较,最后将他们按升序输出。
    
     
    sort(选项)(参数) 
    		-u忽略略相同⾏行行
    		-k 按指定列列排序 -n 按数值排序 -t 分割符
    		-r 逆序
    #指定passwd⽂文件按第三列列 的数值⽐比较,列列之间的分隔符为: 
    cat /etc/passwd | sort -n -t ':' -k 3
    
    #查找你最常用的10条命令
    history | awk '{print $2}' | sort | uniq -c | sort -r -n -k 1 |
    head -n 10
    
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值