linux下重命名文件或文件夾、批量實現重命名文件方法
一、
linux下重命名文件或文件夾的命令mv既可以重命名,又可以移動文件或文件夾.
例子:將目錄A重命名為B
mv A B
例子:將/a目錄移動到/b下,並重命名為c
mv /a /b/c
其實在文本模式中要重命名文件或目錄的話也是很簡單的,我們只需要使用mv命令就可以了,比如說我們要將一個名為abc的文件重命名為1234就可以這樣來寫:mv abc 1234,但是要注意的是,如果當前目錄下也有個1234的文件的話,我們的這個文件是會將它覆蓋的。
二、
Linux批量重命名文件會涉及到改變一個字母、改變一些相連字母、改變某些位置的字母、在最前面加上某些字母、或者改變字母的大小寫。完成這里五個方法基本上就會解決了Linux批量重
命名的工作。
1、我想把它們的名字的第一個1個字母變為"q",其它的不變
[root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | sed 's/^./q/'`; done
或者寫個腳本,顯得更加清晰:
for file in `ls`
do
newfile =`echo $i | sed 's/^./q/'`
mv $file $newfile
done
2、修改前面5個字母為zhaozh
[root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | sed 's/^...../zhaozh/'`; done
3、修改後面5個字母為snail
[root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | sed 's/.....$/snail/'`; done
4、在前面添加 _hoho_
[root@pps mailqueue]# for i in `ls`; do mv -f $i `echo "_hoho_"$i`; done
5、所有的小寫字母變大寫字母
[root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | tr a-z A-Z`; done
上面是五中完成有關Linux批量重命名方法。
2. 如何用shell批量移動子目錄下文件到當前文件夾
需要寫一個函數
#!/bin/bash
function read_dir(){
for file in `ls $1`
do
if [ -d $1"/"$file ]
then
read_dir $1"/"$file
else
echo $1"/"$file
fi
done
}
read_dir $1 > ~/txt_27316324984592
for i in $(<~/txt_27316324984592); do mv $i $2; done
rm ~/txt_27316324984592 #中間文件,存儲文件路徑
將代碼復制到getfile.sh,chmod 777 getfile.sh
用法:內path/to/getfile.sh 你要移動的文件夾路徑 目標容文件見路徑