centos8 批量修改文件名字

1.把文件.txt后缀改为.log后缀

[20:12:06 root@centos8 tset ]#ls
atxt.c  ctxt.c  etxt.c  gtxt.c  itxt.c  ktxt.c  mtxt.c  otxt.c  qtxt.c  stxt.c  utxt.c  wtxt.c  ytxt.c
btxt.c  dtxt.c  ftxt.c  htxt.c  jtxt.c  ltxt.c  ntxt.c  ptxt.c  rtxt.c  ttxt.c  vtxt.c  xtxt.c  ztxt.c
[20:12:09 root@centos8 tset ]#rename txt.c  .txt *
[20:12:44 root@centos8 tset ]#ls
a.txt  c.txt  e.txt  g.txt  i.txt  k.txt  m.txt  o.txt  q.txt  s.txt  u.txt  w.txt  y.txt
b.txt  d.txt  f.txt  h.txt  j.txt  l.txt  n.txt  p.txt  r.txt  t.txt  v.txt  x.txt  z.txt
[20:12:46 root@centos8 tset ]#rename .txt  .log *
[20:13:07 root@centos8 tset ]#ls
a.log  c.log  e.log  g.log  i.log  k.log  m.log  o.log  q.log  s.log  u.log  w.log  y.log
b.log  d.log  f.log  h.log  j.log  l.log  n.log  p.log  r.log  t.log  v.log  x.log  z.log
[20:13:08 root@centos8 tset ]#

2利用for循环修改文件名 #因为刚开始学习,能力有限,现在只能在.log后面追加.txt修改,而且命令会过长,还不如用rename修改

[20:41:54 root@centos8 tset ]#ls
a.log  c.log  e.log  g.log  i.log  k.log  m.log  o.log  q.log  s.log  u.log  w.log  y.log
b.log  d.log  f.log  h.log  j.log  l.log  n.log  p.log  r.log  t.log  v.log  x.log  z.log
[20:42:01 root@centos8 tset ]#for file in *; do mv $file $file.txt;done
[20:44:17 root@centos8 tset ]#ls
a.log.txt  d.log.txt  g.log.txt  j.log.txt  m.log.txt  p.log.txt  s.log.txt  v.log.txt  y.log.txt
b.log.txt  e.log.txt  h.log.txt  k.log.txt  n.log.txt  q.log.txt  t.log.txt  w.log.txt  z.log.txt
c.log.txt  f.log.txt  i.log.txt  l.log.txt  o.log.txt  r.log.txt  u.log.txt  x.log.txt
[20:44:19 root@centos8 tset ]#

最后写了一个小脚本试了一下

[22:06:29 root@centos8 tset ]#bash /data/rename_file.sh 
[22:06:31 root@centos8 tset ]#ls
a.txt  c.txt  e.txt  g.txt  i.txt  k.txt  m.txt  o.txt  q.txt  s.txt  u.txt  w.txt  y.txt
b.txt  d.txt  f.txt  h.txt  j.txt  l.txt  n.txt  p.txt  r.txt  t.txt  v.txt  x.txt  z.txt
[22:07:00 root@centos8 tset ]#cat /data/rename_file.sh 
#!/bin/bash
DIR=/data/tset
cd $DIR
for FILE in *;do 
  PRE=`echo $FILE|cut -d. -f 1`
  mv $FILE  $PRE.txt
done

你可能感兴趣的:(学习笔记)