+ -
当前位置:首页 → 问答吧 → 批量重命名问题?

批量重命名问题?

时间:2008-04-02

来源:互联网

昨天 偶然从一个MM那里知道 其实在windows下可以批量的给文件重命名
以前不知道这个 自己是学电脑的都不知道 所以我当时显然被打击到了

具体是选中多个文件选择 ‘重命名’ 如果给第一个输入的是 R
则其文件的名称的会以 R (1) 开始

我用Gnome试了试 不行 用学校的KDE试试也不行 看来这两大GUI还不支持这个功能

不知道大家有没有其他办法

作者: 杨珂   发布时间: 2008-04-02

shell里想怎么批量命名就怎么批量命名
你说个具体的要求来,我就给你一个具体的答案

作者: zhllg   发布时间: 2008-04-02

说实话,觉得Windows的这种批量重命名方式比较呆。

作者: gamedragon   发布时间: 2008-04-02

引用:
作者: gamedragon
说实话,觉得Windows的这种批量重命名方式比较呆。
是的:
a.txt
a(1).txt
a(2).txt
a(3).txt
我一般批量重命名都是
a1.txt
a2.txt
a3.txt
a4.txt
而且这个功能很久没有用过,感觉没有什么用处。

作者: walkerxk   发布时间: 2008-04-02

xfce4里面有个批量重命名的软件
上回在windows改相片的名字,当时没找到现成的python代码,就试着用ruby来改,一共不到10行的代码
我想在linux下用shell很方便的喔
偶看来要找时间学习<ABS>才行

作者: axlrose   发布时间: 2008-04-02

看了一点<abs>。感觉用shell的话应该会很简单
kde和gnome里没有的话搂主可以自己写个shell脚本
想改成什么格式的就改成什么格式的

作者: cbkid   发布时间: 2008-04-02

2楼

alkds.png alskd.png 12asdg.png *.png ....
->
now_date_id1.png
now_date_id2.png
now_date_id3.png
...

1楼
代码:
man rename
我上次也问这个问题,NB的人是这样回复的,“自己查看man!这么问题也用问?!”

作者: flyinflash   发布时间: 2008-04-02

首先我认为这是个GUI问题,用不着牵涉到SHELL。
其次,至于这个功能是否象征着好的GUI的设计,个人持保留意见。
第三,个人认为不在File Manager里面提供类似的功能,但是允许通过扩展的形式实现不失为一个好的设计。

作者: byakko_ang   发布时间: 2008-04-02

引用:
作者: zhllg
shell里想怎么批量命名就怎么批量命名
你说个具体的要求来,我就给你一个具体的答案
主要就是一些图片的重命名 windows那个格式不看 但是方便
其实可以自己写个程序(应该有现成的吧) 还可以用不同的版式

man rename 里面说:

For example, given the files foo1, ..., foo9, foo10, ..., foo278, the
commands

rename foo foo0 foo?
rename foo foo0 foo??

will turn them into foo001, ..., foo009, foo010, ..., foo278.

如果都是完全不同的文件名比如:fowe wieoi ioiwe wew 而不是 foo1, ..., foo9, foo10, ..., foo278
可以用这个转成全部为foo开头的吗? 我试试没整出来 请指教

作者: 杨珂   发布时间: 2008-04-03

到底你想怎么重命名呢?不妨说说

作者: zhllg   发布时间: 2008-04-03

引用:
作者: 杨珂
主要就是一些图片的重命名 windows那个格式不看 但是方便
其实可以自己写个程序(应该有现成的吧) 还可以用不同的版式

man rename 里面说:

For example, given the files foo1, ..., foo9, foo10, ..., foo278, the
commands

rename foo foo0 foo?
rename foo foo0 foo??

will turn them into foo001, ..., foo009, foo010, ..., foo278.

如果都是完全不同的文件名比如:fowe wieoi ioiwe wew 而不是 foo1, ..., foo9, foo10, ..., foo278
可以用这个转成全部为foo开头的吗? 我试试没整出来 请指教
gthumb程序就可以实现这个功能。
当然,shell更是没问题。

作者: telekroc   发布时间: 2008-04-03

引用:
作者: zhllg
到底你想怎么重命名呢?不妨说说
就是把一些乱的名称 如 wewo.jpg kiiso.jpg xxkd.jpg 重命名为pic01.jpg pic02.jpg pic03.jpg

作者: 杨珂   发布时间: 2008-04-03

n=1
for i in *.jpg
do
mv $i pic0$n.jpg
((n++))
done

作者: zhllg   发布时间: 2008-04-03

引用:
作者: zhllg
n=1
for i in *.jpg
do
mv $i pic0$n.jpg
((n++))
done
感谢 就是我想要的 一会回去试试

作者: 杨珂   发布时间: 2008-04-03

又学到一招.
菜问题:
是保存为.sh,然后执行吗?

作者: tlze   发布时间: 2008-04-04

引用:
作者: tlze
又学到一招.
菜问题:
是保存为.sh,然后执行吗?
可以用chmod u+x 文件名 (详细请man chmod) 来加上可执行标致。
然后./文件名就行了。

作者: cbkid   发布时间: 2008-04-04

试验成功,谢所有楼上的解答者。

作者: tlze   发布时间: 2008-04-04

Windows的这个功能以前不知道,现在晓得了。觉得不好用。
还是习惯用TC。

作者: sofire   发布时间: 2008-04-04

有个问题 对于文件名里面有空格的情况就失效了
其中的文件名为: ZJC (n).JPG (n = 1 ~ 52)
代码:
yangke@kcfv ~/Desktop/ZJC/ZJC High Qual $ '/home/yangke/Desktop/try/rnall.sh' mv: target `pic01.jpg' is not a directory
mv: target `pic02.jpg' is not a directory
mv: target `pic03.jpg' is not a directory
mv: target `pic04.jpg' is not a directory
mv: target `pic05.jpg' is not a directory
mv: target `pic06.jpg' is not a directory
mv: target `pic07.jpg' is not a directory
mv: target `pic08.jpg' is not a directory
mv: target `pic09.jpg' is not a directory
mv: target `pic010.jpg' is not a directory
mv: target `pic012.jpg' is not a directory
mv: target `pic013.jpg' is not a directory
mv: target `pic014.jpg' is not a directory
mv: target `pic015.jpg' is not a directory
mv: target `pic016.jpg' is not a directory
mv: target `pic017.jpg' is not a directory
mv: target `pic018.jpg' is not a directory
mv: target `pic019.jpg' is not a directory
mv: target `pic020.jpg' is not a directory
mv: target `pic021.jpg' is not a directory
mv: target `pic022.jpg' is not a directory
mv: target `pic023.jpg' is not a directory
mv: target `pic024.jpg' is not a directory
mv: target `pic025.jpg' is not a directory
mv: target `pic026.jpg' is not a directory
mv: target `pic027.jpg' is not a directory
mv: target `pic028.jpg' is not a directory
mv: target `pic029.jpg' is not a directory
mv: target `pic030.jpg' is not a directory
mv: target `pic031.jpg' is not a directory
mv: target `pic032.jpg' is not a directory
mv: target `pic033.jpg' is not a directory
mv: target `pic034.jpg' is not a directory
mv: target `pic035.jpg' is not a directory
mv: target `pic036.jpg' is not a directory
mv: target `pic037.jpg' is not a directory
mv: target `pic038.jpg' is not a directory
mv: target `pic039.jpg' is not a directory
mv: target `pic040.jpg' is not a directory
mv: target `pic041.jpg' is not a directory
mv: target `pic042.jpg' is not a directory
mv: target `pic043.jpg' is not a directory
mv: target `pic044.jpg' is not a directory
mv: target `pic045.jpg' is not a directory
mv: target `pic046.jpg' is not a directory
mv: target `pic047.jpg' is not a directory
mv: target `pic048.jpg' is not a directory
yangke@kcfv ~/Desktop/ZJC/ZJC High Qual $

作者: 杨珂   发布时间: 2008-04-08

看看abs吧

作者: zhllg   发布时间: 2008-04-08

引用:
作者: zhllg
看看abs吧
好的
开学后被压得好紧啊 放假就有时间学了

作者: 杨珂   发布时间: 2008-04-09

文件名若有空格,可以:

代码:
n=1
for i in *.jpg
do
mv "$i" pic0$n.jpg
((n++))
done

作者: LiYanrui   发布时间: 2008-04-09

用kde的话,装个krename,然后批量重命名的功能就会集成到konqueror里面。

作者: addone   发布时间: 2008-04-09

引用:
作者: addone
用kde的话,装个krename,然后批量重命名的功能就会集成到konqueror里面。
对konquer有意见 感觉它总是试图集成所有的功能。。。

作者: 杨珂   发布时间: 2008-04-09

引用:
作者: 杨珂
对konquer有意见 感觉它总是试图集成所有的功能。。。

用dolphin好了……krename也可以配合用的。

作者: addone   发布时间: 2008-04-09

引用:
作者: zhllg
看看abs吧
代码:
$ eix -I abs
[i] app-doc/abs-guide
 Available versions: 5.0 (~)5.1
 Installed versions: 5.1(21时44分56秒 2008年03月30日)
 Homepage: http://www.tldp.org/LDP/abs/html
 Description: An advanced reference and a tutorial on bash shell scripting

作者: 食古不化   发布时间: 2008-04-10

引用:
作者: 食古不化
代码:
$ eix -I abs
[i] app-doc/abs-guide
 Available versions: 5.0 (~)5.1
 Installed versions: 5.1(21时44分56秒 2008年03月30日)
 Homepage: http://www.tldp.org/LDP/abs/html
 Description: An advanced reference and a tutorial on bash shell scripting
cool! i don't even know this before.

作者: zhllg   发布时间: 2008-04-10

http://www.linuxgem.org/tip/use-bash...extension.html

代码:
在 Bash 下批量更改文件扩展名
galeki post @ 2007年10月03日 12:24AM in Bash Tips with tags: bash 扩展名 批量

如果我想把当前目录下的所有扩展名为 cpp 的文件,改成扩展名为 c 的文件,要怎么办? 用 shell 编程可以很容易的解决这个问题:

 1. #!/bin/bash
 2. for old in *.cpp
 3. do
 4. mv $old `basename $old .cpp`.c
 5. done

特别解释一下第4行的 basename 这个命令,basename 返回文件完整路径中的文件名部分,例如: 
# basename /home/galeki/html/index.html
index.html

你也可以在参数中给出文件的扩展名,这样 basename 只会返回文件名除去扩展名的部分:
# basename /home/galeki/html/index.html .html
index

 也可以把上面的程序修改一下,让它可以根据参数处理不同的扩展名:

 1. #!/bin/bash
 2. for old in *.$1
 3. do
 4. mv $old `basename $old .$1`.$2
 5. done

 把上面这段代码存成 rn ( rename 的缩写 ),如果你想把当前目录下的所有文件的扩展名从 jpg 改成 png ,那么,只要执行: rn jpg png ,即可。
触类旁通……

作者: 食古不化   发布时间: 2008-04-10

windows下重命名一般用acdsee

作者: jigloo   发布时间: 2008-04-10

见识下我用的 xfce,它的 thunar 文件管理器自带的 rename gui 版本

功能可是很强的哟
上传的图像
xfce-rename.gif (17.4 KB, 5 次查看)

作者: arli   发布时间: 2008-04-11

热门下载

更多