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

📄 ch17_22.htm

📁 the unix power tools
💻 HTM
字号:
<HTML><!--Distributed by F --><HEAD><TITLE>[Chapter 17] 17.22 Finding the Links to a File </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:38:41Z"><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="ch17_01.htm"TITLE="17. Finding Files with find"><LINKREL="prev"HREF="ch17_21.htm"TITLE="17.21 lookfor: Which File Has that Word? "><LINKREL="next"HREF="ch17_23.htm"TITLE="17.23 Finding Files with -prune "></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="ch17_21.htm"TITLE="17.21 lookfor: Which File Has that Word? "><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 17.21 lookfor: Which File Has that Word? "BORDER="0"></A></TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><B><FONTFACE="ARIEL,HELVETICA,HELV,SANSERIF"SIZE="-1">Chapter 17<BR>Finding Files with find</FONT></B></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch17_23.htm"TITLE="17.23 Finding Files with -prune "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 17.23 Finding Files with -prune "BORDER="0"></A></TD></TR></TABLE>&nbsp;<HRALIGN="LEFT"WIDTH="515"TITLE="footer"></DIV><DIVCLASS="SECT1"><H2CLASS="sect1"><ACLASS="title"NAME="UPT-ART-0366">17.22 Finding the Links to a File </A></H2><PCLASS="para"><ACLASS="indexterm"NAME="AUTOID-19762"></A><ACLASS="indexterm"NAME="AUTOID-19765"></A><ACLASS="indexterm"NAME="AUTOID-19768"></A><ACLASS="indexterm"NAME="AUTOID-19772"></A><ACLASS="indexterm"NAME="AUTOID-19776"></A>Here is how to find links&nbsp;- anda brief look at the UNIX filesystem from the user's viewpoint.Suppose you are given the following:</P><PCLASS="para"><BLOCKQUOTECLASS="screen"><PRECLASS="screen">% <CODECLASS="userinput"><B>ls -li /usr/foo</B></CODE> 2076 -rw-r--r--  3 chris         326 Sep 16 03:23 /usr/foo</PRE></BLOCKQUOTE></P><PCLASS="para">In other words, there are three links, and <EMCLASS="emphasis">/usr/foo</EM> is one ofthree names for<SPANCLASS="link">inode (<ACLASS="linkend"HREF="ch01_22.htm"TITLE="How UNIX Keeps Track of Files: Inodes ">1.22</A>)</SPAN>2076.You can find the full names of the other two linksby using <EMCLASS="emphasis">/etc/ncheck</EM> and/or <EMCLASS="emphasis">find</EM>. However, just knowingthe inode number does not tell you everything.</P><PCLASS="para">The whole truth is that there is another number hiding away in<ACLASS="indexterm"NAME="AUTOID-19788"></A>there. This is the <EMCLASS="emphasis">device number</EM>, and it tells which<EMCLASS="emphasis">filesystem</EM> holds the file. There can be any number of inode2076s, as long as each one is on a different filesystem.<ACLASS="indexterm"NAME="AUTOID-19792"></A>(More recent UNIX systems use a <EMCLASS="emphasis">filesystem ID number</EM> in place ofa device number, so that they can represent filesystems on othermachines.<ACLASS="indexterm"NAME="AUTOID-19796"></A>They may also use a <EMCLASS="emphasis">vnode number</EM> rather than an inode number.The effect is the same, although you often cannot run <EMCLASS="emphasis">/etc/ncheck</EM>on anything but a local disk.)</P><PCLASS="para">You can find out which filesystem <EMCLASS="emphasis">/usr/foo</EM> is in by running<SPANCLASS="link"><EMCLASS="emphasis">df</EM> (<ACLASS="linkend"HREF="ch24_09.htm"TITLE="How Much Disk Space? ">24.9</A>)</SPAN><ACLASS="indexterm"NAME="AUTOID-19804"></A><ACLASS="indexterm"NAME="AUTOID-19806"></A>or <EMCLASS="emphasis">mount</EM>. Suppose it is on <EMCLASS="emphasis">/dev/sd0g</EM>. If <EMCLASS="emphasis">/dev/sd0g</EM>shows up as:</P><PCLASS="para"><BLOCKQUOTECLASS="screen"><PRECLASS="screen">% <CODECLASS="userinput"><B>df</B></CODE>Filesystem    kbytes    used   avail capacity  Mounted on/dev/sd0g     179423  152202    9278    94%    /usr% <CODECLASS="userinput"><B>ls -l /dev/sd0g</B></CODE>brw------  1 root       2,   6 Dec 27 07:17 /dev/sd0g</PRE></BLOCKQUOTE></P><PCLASS="para">then it is &quot;major device 2, minor device 6.&quot; These numbers aresmashed together with the <EMCLASS="emphasis">makedev</EM> macro in one of the kernelsource files. Typically this is just <EMCLASS="emphasis">major</EM>*256 + <EMCLASS="emphasis">minor</EM>;here we have 2*256+6, or 518. Another way to find this same numberis to use the <EMCLASS="emphasis">stat</EM>(2) system call on the original file <EMCLASS="emphasis">/usr/foo</EM>;the device number appears in the <CODECLASS="literal">st_dev</CODE> field.[The<SPANCLASS="link"><EMCLASS="emphasis">stat</EM> (<ACLASS="linkend"HREF="ch21_13.htm"TITLE="Read an Inode with stat ">21.13</A>)</SPAN>program does this for you. <EMCLASS="emphasis">-JP</EM>&nbsp;]</P><PCLASS="para">So if you do a <CODECLASS="literal">find&nbsp;/&nbsp;-inum&nbsp;2076&nbsp;-print</CODE> to find every file withinode number&nbsp;2076, you may find more than three files. Only threeof them will be on <EMCLASS="emphasis">sd0g</EM>, though.</P><DIVCLASS="sect1info"><PCLASS="SECT1INFO">- <SPANCLASS="authorinitials">CT</SPAN> <SPANCLASS="bibliomisc">in <ACLASS="systemitem.newsgroup"HREF="news:net.unix">net.unix</A> on Usenet, 15 January 1985</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="ch17_21.htm"TITLE="17.21 lookfor: Which File Has that Word? "><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 17.21 lookfor: Which File Has that Word? "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="ch17_23.htm"TITLE="17.23 Finding Files with -prune "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 17.23 Finding Files with -prune "BORDER="0"></A></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172">17.21 lookfor: Which File Has that Word? </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">17.23 Finding Files with -prune </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 + -