批量取消文件后缀名

回复 收藏
首先给文件添加后缀名(或者用find)
  1. touch 1 2 3 4
  2. for i in `ls`;do mv $i $i.bak;done
取消后缀名:
第一种:
  1. for i in `ls `;do mv $i `echo $i|sed 's/\.bak//g'`;done

第二种:
  1. for i in `ls`;do mv $i ${i%.*};done
第三种:
  1. ls | awk -F'.' '{print $1}'|xargs -i mv {}.bak {}
第四种:
  1. for i in `ls`;do mv $i `echo $i|tr ".bak" " "`;done



2016-03-31 21:33 举报
已邀请:
0

乐橙306

赞同来自:

你试试这题

3.批量修改文件后缀 ,将/tmp下所有文件添加bak后缀
root@aliyun-63 tmp]# ll
total 4
-rw-r--r-- 1 root root    0 Mar 24 17:35 b1.txt
-rw-r--r-- 1 root root    0 Mar 24 17:35 b2.txt
drwxr-xr-x 4 root root 4096 Mar 24 17:29 sd
[root@aliyun-63 tmp]#

脚本练习(3.24)
http://www.apelearn.com/bbs/thread-11687-1-1.html


0

乐橙306

赞同来自:

再出一题   删除/tmp/sd目录下所有bak的后缀  还原为  1   2   3

[root@aliyun-63 sd]# ll
total 0
-rw-r--r-- 1 root root 0 Mar 31 21:59 1.bak
-rw-r--r-- 1 root root 0 Mar 31 21:59 2.bak.bak
-rw-r--r-- 1 root root 0 Mar 31 21:59 3.bak.bak.bak
[root@aliyun-63 sd]#
0

369666951

赞同来自:

乐橙306 发表于 2016-3-31 21:56
你试试这题

3.批量修改文件后缀 ,将/tmp下所有文件添加bak后缀

find 就可以实现 啊
  1. b1.txt.bak  b2.txt.bak  sd
0

乐橙306

赞同来自:

369666951 发表于 2016-3-31 22:02
find 就可以实现 啊

需要加判断  排除目录sd     [ -f FILE ]  如果 FILE 存在且是一个普通文件则为真   
0

369666951

赞同来自:

乐橙306 发表于 2016-3-31 22:00
再出一题   删除/tmp/sd目录下所有bak的后缀  还原为  1   2   3

[root@aliyun-63 sd]# ll
  1. for i in `ls`;do  mv $i `echo $i|tr ".bak" " "`;done
0

qidi2015

赞同来自:

  1. [root@net 0]#
  2. [root@net 0]# ls
  3. 1.bak  2.bak  3.bak  4.bak  5.bak  6.bak
  4. [root@net 0]# rename '.bak' '' *
  5. [root@net 0]# ls
  6. 1  2  3  4  5  6
  7. [root@net 0]#
0

jinm

赞同来自:

学习了
0

flyingfishzxf

赞同来自:

乐橙306 发表于 2016-3-31 22:00
再出一题   删除/tmp/sd目录下所有bak的后缀  还原为  1   2   3

[root@aliyun-63 sd]# ll
  1. for i in `ls`;do mv $i `echo $i|awk -F'.bak' '{print $1}'`;done
0

flyingfishzxf

赞同来自:

乐橙306 发表于 2016-3-31 21:56
你试试这题

3.批量修改文件后缀 ,将/tmp下所有文件添加bak后缀
  1. ls /tmp |xargs -i mv {} {}.bak
0

自己定义

赞同来自:

学习了,谢谢!
0

SunyBome

赞同来自:

学习了

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: