<?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>A18制造 &#187; 子目录</title>
	<atom:link href="http://a18zhizao.com/ytag/%e5%ad%90%e7%9b%ae%e5%bd%95/feed" rel="self" type="application/rss+xml" />
	<link>http://a18zhizao.com</link>
	<description>梦想的种子飞入了大地，所需要的只有时间。</description>
	<lastBuildDate>Tue, 24 Jan 2012 11:50:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>tar打包排除某个或多个子目录 &#124; AWK命令</title>
		<link>http://a18zhizao.com/y2010/1406_tar-package-exclude-one-or-more-subdirectories-awk-command.html</link>
		<comments>http://a18zhizao.com/y2010/1406_tar-package-exclude-one-or-more-subdirectories-awk-command.html#comments</comments>
		<pubDate>Sun, 25 Apr 2010 15:01:47 +0000</pubDate>
		<dc:creator>a18ccms</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[awk]]></category>
		<category><![CDATA[tar]]></category>
		<category><![CDATA[子目录]]></category>

		<guid isPermaLink="false">http://a18zhizao.com/?p=1406</guid>
		<description><![CDATA[下午遇到一个小问题：文件目录结构如下 /dir0- -/dir1         &#60;---该文件很大，欲排除 -/dir2         &#60;---该文件很大，欲排除 -/dir3         &#60;---目标目录之一 -index.php  &#60;---目标文件之一 .............以下省略N个子目录和子文件............. 目录下很多子目录，而我需要打包。目标是   /wwwroot 下所有子文件+/dir3 ，于是那些多余的子目录就让我头疼， 怎样在不影响文件结构的情况下打包呢，搜索网上，很多人用下面这个方法： 但是并不好，要是排除的部分是多出，要是子目录过多，语句该要写多久啊，后来又发现网上说可以直接使用排除参数X 新建文件excludefiles在当前目录中，内容为 注意： tar命令里面的目标文件是绝对路径格式，excludefile里面就也必须是绝对路径； tar命令里面的目标文件是相对路径格式，excludefile里面就也必须是相对路径； 后来 搜索找到了自力博客的一样问题的文章 说可以用 AWK 于是去搜索了一下它：Awk学习笔记 发现它提供的语句可以精简，可以这样写： 这个语句很好理解： ls -l 列出所有文件和目录； awk '\^-\ {print $8}' 正则只保留文件行，获得第八列的所有文件名； xargs tar 把上一步得到的名称传参给tar命令。 一切OK，轻松完成打包喽！]]></description>
			<content:encoded><![CDATA[<p><strong>下午遇到一个小问题：</strong>文件目录结构如下</p>
<blockquote><p>/dir0-<br />
-/dir1         &lt;---该文件很大，欲排除<br />
-/dir2         &lt;---该文件很大，欲排除<br />
-/dir3         &lt;---目标目录之一<br />
-index.php  &lt;---目标文件之一<br />
.............以下省略N个子目录和子文件.............</p></blockquote>
<p>目录下很多子目录，而我需要打包。目标是   /wwwroot 下所有<strong>子文件</strong>+/dir3  ，于是那些多余的子目录就让我头疼，<br />
怎样在不影响文件结构的情况下打包呢，搜索网上，很多人用下面这个方法：<br />
<span id="more-1406"></span></p>
<pre class="brush: bash; title: ; notranslate">
tar cvzf \home\all.tar.gz dir0  --exclude dir1 --exclude dir2
</pre>
<p>但是并不好，要是排除的部分是多出，要是子目录过多，语句该要写多久啊，后来又发现网上说可以直接使用排除参数X</p>
<p>新建文件excludefiles在当前目录中，内容为</p>
<pre class="brush: bash; title: ; notranslate">
cat excludefiles
dir1
dir2
tar -cvzf \home\all.tar.gz -X excludefile dir1
</pre>
<blockquote><p><strong>注意：</strong><br />
tar命令里面的目标文件是绝对路径格式，excludefile里面就也必须是绝对路径；<br />
tar命令里面的目标文件是相对路径格式，excludefile里面就也必须是相对路径；</p></blockquote>
<p>后来 搜索找到了<a href="http://www.hzlzh.com/ssh-tar-awk/" target="_blank">自力博客的一样问题的文章</a> 说可以用 <strong>AWK</strong> 于是去搜索了一下它：<a href="http://www.linux.gov.cn/shell/awk.htm" target="_blank">Awk学习笔记</a> 发现它提供的语句可以精简，可以这样写：</p>
<pre class="brush: bash; title: ; notranslate">
ls -l | awk '\^-\ {print  $8}' | xargs tar cvfz \home\dir0.tar.gz
</pre>
<p>这个语句很好理解：</p>
<p><strong>ls -l </strong>列出所有文件和目录<strong>；</strong><br />
<strong>awk '\^-\ {print $8}'</strong> 正则只保留文件行，获得第八列的所有文件名；<br />
<strong>xargs tar</strong> 把上一步得到的名称传参给tar命令。<br />
一切OK，轻松完成打包喽！</p>
]]></content:encoded>
			<wfw:commentRss>http://a18zhizao.com/y2010/1406_tar-package-exclude-one-or-more-subdirectories-awk-command.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

