⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch16_23.htm

📁 the unix power tools
💻 HTM
字号:
<HTML><!--Distributed by F --><HEAD><TITLE>[Chapter 16] 16.23 Comparing Filenames in Two Directory Trees </TITLE><METANAME="DC.title"CONTENT="UNIX Power Tools"><METANAME="DC.creator"CONTENT="Jerry Peek, Tim O'Reilly &amp; Mike Loukides"><METANAME="DC.publisher"CONTENT="O'Reilly &amp; Associates, Inc."><METANAME="DC.date"CONTENT="1998-08-04T21:37:59Z"><METANAME="DC.type"CONTENT="Text.Monograph"><METANAME="DC.format"CONTENT="text/html"SCHEME="MIME"><METANAME="DC.source"CONTENT="1-56592-260-3"SCHEME="ISBN"><METANAME="DC.language"CONTENT="en-US"><METANAME="generator"CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"><LINKREV="made"HREF="mailto:online-books@oreilly.com"TITLE="Online Books Comments"><LINKREL="up"HREF="ch16_01.htm"TITLE="16. Where Did I Put That?"><LINKREL="prev"HREF="ch16_22.htm"TITLE="16.22 Comparing Two Directory Trees with dircmp "><LINKREL="next"HREF="ch16_24.htm"TITLE="16.24 Counting Files by Types "></HEAD><BODYBGCOLOR="#FFFFFF"TEXT="#000000"><DIVCLASS="htmlnav"><H1><IMGSRC="gifs/smbanner.gif"ALT="UNIX Power Tools"USEMAP="#srchmap"BORDER="0"></H1><MAPNAME="srchmap"><AREASHAPE="RECT"COORDS="0,0,466,58"HREF="index.htm"ALT="UNIX Power Tools"><AREASHAPE="RECT"COORDS="467,0,514,18"HREF="jobjects/fsearch.htm"ALT="Search this book"></MAP><TABLEWIDTH="515"BORDER="0"CELLSPACING="0"CELLPADDING="0"><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch16_22.htm"TITLE="16.22 Comparing Two Directory Trees with dircmp "><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 16.22 Comparing Two Directory Trees with dircmp "BORDER="0"></A></TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><B><FONTFACE="ARIEL,HELVETICA,HELV,SANSERIF"SIZE="-1">Chapter 16<BR>Where Did I Put That?</FONT></B></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch16_24.htm"TITLE="16.24 Counting Files by Types "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 16.24 Counting Files by Types "BORDER="0"></A></TD></TR></TABLE>&nbsp;<HRALIGN="LEFT"WIDTH="515"TITLE="footer"></DIV><DIVCLASS="SECT1"><H2CLASS="sect1"><ACLASS="title"NAME="UPT-ART-0433">16.23 Comparing Filenames in Two Directory Trees </A></H2><PCLASS="para"><ACLASS="indexterm"NAME="AUTOID-17733"></A><ACLASS="indexterm"NAME="AUTOID-17736"></A><ACLASS="indexterm"NAME="AUTOID-17739"></A><ACLASS="indexterm"NAME="AUTOID-17742"></A>Do you have two directory trees full of subdirectories and files?Would you like to compare the filenames to see if there are some files onlyin one tree or the other?If you don't have<SPANCLASS="link"><EMCLASS="emphasis">dircmp</EM> (<ACLASS="linkend"HREF="ch16_22.htm"TITLE="Comparing Two Directory Trees with dircmp ">16.22</A>)</SPAN>,look at the quick-and-dirty substitute in the example below.The<SPANCLASS="link">numbered prompts (<ACLASS="linkend"HREF="ch07_02.htm"TITLE="Basics of Setting the Prompt ">7.2</A>)</SPAN>like <CODECLASS="literal">3%</CODE> are just for reference:</P><PCLASS="para"><TABLECLASS="screen.co"BORDER="1"><TR><THVALIGN="TOP"><PRECLASS="calloutlist">&#13;<ACLASS="co"HREF="ch15_02.htm"TITLE="15.2 Filename Wildcards in a Nutshell ">[..]</A> </PRE></TH><TDVALIGN="TOP"><PRECLASS="screen">1% <CODECLASS="userinput"><B>cd </B></CODE><CODECLASS="replaceable"><I>directory1</I></CODE>2% <CODECLASS="userinput"><B>find . -type f -print | sort &gt;/tmp/dir1</B></CODE>3% <CODECLASS="userinput"><B>cd </B></CODE><CODECLASS="replaceable"><I>directory2</I></CODE>4% <CODECLASS="userinput"><B>find . -type f -print | sort &gt;/tmp/dir2</B></CODE>5% <CODECLASS="userinput"><B>comm -3 /tmp/dir[12]6% rm /tmp/dir[12]</B></CODE></PRE></TD></TR></TABLE></P><PCLASS="para"><ACLASS="indexterm"NAME="AUTOID-17759"></A>The<SPANCLASS="link"><EMCLASS="emphasis">comm</EM> (<ACLASS="linkend"HREF="ch28_12.htm"TITLE="Comparing Two Files with comm ">28.12</A>)</SPAN>command will give you two columns: files in the left-handcolumn are only in <EMCLASS="emphasis">directory1</EM>.Files in the right-hand column are only in <EMCLASS="emphasis">directory2</EM>.You can get other information, too, like a list of files inboth trees.</P><PCLASS="para">&#13;This works nicely for directory trees on other computers, too.Run one <CODECLASS="literal">find</CODE>&nbsp;<CODECLASS="literal">|</CODE>&nbsp;<CODECLASS="literal">sort</CODE> on the remote system.Transferthat file to the computer with the other directory treeand run <EMCLASS="emphasis">comm</EM> there.Or do the <EMCLASS="emphasis">diff</EM> across the network by replacing commands 3-5 above with:</P><PCLASS="para"><TABLECLASS="screen.co"BORDER="1"><TR><THVALIGN="TOP"><PRECLASS="calloutlist"><ACLASS="co"HREF="ch01_33.htm"TITLE="1.33 UNIX Networking and Communications ">rsh</A> </PRE></TH><TDVALIGN="TOP"><PRECLASS="screen">% <CODECLASS="userinput"><B>rsh <CODECLASS="replaceable"><I>host</I></CODE> \  'cd <CODECLASS="replaceable"><I>directory2</I></CODE>; find . -type f -print | sort' | \  comm -e /tmp/dir1 -</B></CODE></PRE></TD></TR></TABLE></P><PCLASS="para">&#13;The <CODECLASS="literal">-</CODE> argument tells <EMCLASS="emphasis">comm</EM> to read its standard input (fromthe remote <EMCLASS="emphasis">find</EM> command).Article<ACLASS="xref"HREF="ch13_13.htm"TITLE='The "Filename&quot; - '>13.13</A>shows a similar trick for a filesystem across a network.Articles<ACLASS="xref"HREF="ch16_19.htm"TITLE="stree: Simple Directory Tree ">16.19</A>and<ACLASS="xref"HREF="ch16_20.htm"TITLE="The vtree Visual Directory Tree Programs ">16.20</A>are about programs that help you see a directory tree.</P><DIVCLASS="sect1info"><PCLASS="SECT1INFO">- <SPANCLASS="authorinitials">JP</SPAN></P></DIV></DIV><DIVCLASS="htmlnav"><P></P><HRALIGN="LEFT"WIDTH="515"TITLE="footer"><TABLEWIDTH="515"BORDER="0"CELLSPACING="0"CELLPADDING="0"><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch16_22.htm"TITLE="16.22 Comparing Two Directory Trees with dircmp "><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 16.22 Comparing Two Directory Trees with dircmp "BORDER="0"></A></TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><ACLASS="book"HREF="index.htm"TITLE="UNIX Power Tools"><IMGSRC="gifs/txthome.gif"SRC="gifs/txthome.gif"ALT="UNIX Power Tools"BORDER="0"></A></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch16_24.htm"TITLE="16.24 Counting Files by Types "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 16.24 Counting Files by Types "BORDER="0"></A></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172">16.22 Comparing Two Directory Trees with dircmp </TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><ACLASS="index"HREF="index/idx_0.htm"TITLE="Book Index"><IMGSRC="gifs/index.gif"SRC="gifs/index.gif"ALT="Book Index"BORDER="0"></A></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172">16.24 Counting Files by Types </TD></TR></TABLE><HRALIGN="LEFT"WIDTH="515"TITLE="footer"><IMGSRC="gifs/smnavbar.gif"SRC="gifs/smnavbar.gif"USEMAP="#map"BORDER="0"ALT="The UNIX CD Bookshelf Navigation"><MAPNAME="map"><AREASHAPE="RECT"COORDS="0,0,73,21"HREF="../index.htm"ALT="The UNIX CD Bookshelf"><AREASHAPE="RECT"COORDS="74,0,163,21"HREF="index.htm"ALT="UNIX Power Tools"><AREASHAPE="RECT"COORDS="164,0,257,21"HREF="../unixnut/index.htm"ALT="UNIX in a Nutshell"><AREASHAPE="RECT"COORDS="258,0,321,21"HREF="../vi/index.htm"ALT="Learning the vi Editor"><AREASHAPE="RECT"COORDS="322,0,378,21"HREF="../sedawk/index.htm"ALT="sed &amp; awk"><AREASHAPE="RECT"COORDS="379,0,438,21"HREF="../ksh/index.htm"ALT="Learning the Korn Shell"><AREASHAPE="RECT"COORDS="439,0,514,21"HREF="../lrnunix/index.htm"ALT="Learning the UNIX Operating System"></MAP></DIV></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -