簡體   English   中英

在Shell腳本中重命名多個文件

[英]rename multiple files in shell script

重命名多個文件...在外殼中

我的目錄中有3個文件

abc.tar.gz
abc2.tar.gz
abc3.tar.gz

使用此命令:

rename abc abc.part abc*.tar.gz

它將它們轉換成

abc.part.tar.gz
abc.part2.tar.gz
abc.part3.tar.gz

之后,我在其中添加了3個文件。

abc.tar.gz
abc2.tar.gz
abc3.tar.gz

而當我重新命名abc abc.part abc * .tar.gz

它將重命名所有6個文件,因此最終輸出為

abc.part.tar.gz
abc.part.part2.tar.gz
abc.part.part3.tar.gz
abc.part.part.tar.gz
abc.part2.tar.gz
abc.part3.tar.gz

我只是想防止多次重命名... rename命令應該怎么做?

表示無論我啟動重命名命令有多少時間,我的最終輸出都應該在下面。 這里文件的數量是DYNAMIC ..它可能是3,4 ...或其他...因此不能靜態添加3或某個數字!

abc.part.tar.gz
abc.part2.tar.gz
abc.part3.tar.gz

作為重命名的最后一個參數,請使用:

abc{,2,3}.tar.gz

創建以下“ ChangeExt”腳本:

#!/bin/bash
if [ $# -lt 2 ]; then 
   echo "$0 NEWEXT FILENAME.." 
   exit 1
fi

$newext=$1
shift

for a in $* 
do
  mv $a "`basename $a`.$newext"
  echo "$a to `basename $a`.$newext"
done

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM