全部博文(26)
分类: LINUX
2014-02-08 14:57:37
摘自:[美]Harley Hahn:Unix & Linux大学教程
十九、目录操作
(1)路径名
例 arch@archlinux /usr $ /usr/share/dict/words
绝对路径名:从根目录开始,/usr/share/dict/words
相对路径名:从工作目录开始,./share/dict/words
.. 父目录
. 工作目录
~ home目录
(2)在目录树中移动:cd与pwd
cd (change directory) 改变目录
pwd (print working directory) 显示工作目录
(3)创建、删除、移动目录
mkdir [-p] directory...
其中directory是希望创建目录的名称。
规则:1.不能在同一父目录下创建相同目录;2.父目录不存在,不能创建子目录。
使用-p选项,可以不顾规则2,创建全部结构。
rmdir [-p] directory...
规则:1.目录不空,无法删除;2.不能删除工作目录和根目录之间的任何目录。
mv directory target
其中directory是希望移动或重命名的目录,target是目标或新名称。
(4)使用目录栈:pushd\popd\dirs
在任何时候可以使用pushd命令将目录的名称压入到目录栈(directory stack)中。然后,可以使用popd命令从栈中弹出一个目录名称。此外,随时可用dirs命令显示栈的内容。这些命令的语法为:
pushd [directory | +n]
popd [+n]
dirs [-c] [-l] [-v]
其中directoty是目录的名称,n是标识符。注意:当dirs使用选项时,选项必须单独指定,不能连在一起。
在任何时候,栈顶存放的就是工作目录的名称。
dirs命令加-v(verbose,详细)选项,将显示栈中元素的行号。带上-l选项以后,dirs将显示home目录的完整名称。-c选项清空目录栈。
为了使目录栈更容易使用,可以用dirs -v和pushd创建别名。
alias d=”dirs -v" alias p=pushd (Bash)
alias d ”dirs -v" alias p pushd (C-shell)
(5)列举目录内容:ls –CrR1
ls(list files,列举文件)程度是最常用的Unix程序之一。
只考虑最重要的选项,ls程序语法为
ls [-aCdFglrRs1] [name...]
其中name是目录或文件的名称。
ls程序的默认行为就是按字母表顺序(与区域设置相关)显示目录中各文件的名称。-r选项可以反序显示。
如果由于某种原因,您希望ls以列的形式将输出写入到文件或管道中,可以使用-C选项。
如果希望强制ls程序以每个文件名占一行的形式将输出写到终端,则可使用-1选项。(数字1)
如果希望显示整个目录树,则可使用-R选项。
(6)查看文件类型:ls –F; ls –color (linux); file
使用带-F(flag,标志)选项的ls时,ls在特定类型的文件名称之后显示一个标志,*表示可执行文件,/是目录,@表示符号链接,|命名管道,没有标志的是普通文件。
如果是Linux,那么除-F选项外,还可以用—color选项,语法为
ls –color[=always | =auto |=never] [name...]
auto表示ls仅当输出要在终端上显示时才使用颜色。
file命令的语法为:file [name...]
(7)掌握磁盘空间使用情况:ls –hs, du, df, quota
带-s(size,大小)选项的ls程序,将在文件名前面以KB为单位列出文件大小。对于Linux来说,还可以使用-h(human-readable)选项显示一个合适的单位。
du (disk usage)可以用来显示文件的大小,语法为:
du [-achs] [name...]
输出多以KB为单位,为了在显示大小时显示单位,可以使用-h选项,-s选项,du将只显示总和。-c选项在输出末尾显示总量。-a选项,du将显示它所处理的每个目录和文件的大小。
df (disk free-space)显示每个文件系统使用了多少磁盘空间,以及还有多少空间可用,-h选项以适合人类阅读的方式显示输出。
如果系统设置有配额,则可使用quota程序检查使用及限制情况。
-v选项显示详细信息: quota -v
(8)块和分配单元的查看:dumpe2fs
输入dumpe2fs命令,后面跟特殊文件的名称,例
dumpe2fs /dev/hda1 | grep “Block size”
(9)通配符
* 匹配除/(斜线)字符之外的任何字符
? 匹配除/(斜线)字符之外的任何单一字符
[list] 匹配list中的任何字符
[^list] 匹配不在list中的任何字符
{string1 | string2} 匹配其中一个指定的字符
[[:lower]] 小写字母
[[:upper]] 大写字母
[[:digit]] 数字
[[:alnum]] 数字和字母
[[:alpha]] 字母
(10)点文件显示:ls -a
-a选项将列出所有文件,包括隐藏文件。
(11)长目录列表:ls -dhltu
-l选项代表长列表,时间和日期是修改时间。
使用-l选项时可用-u选项将显示文件的访问时间。
如果希望按时间顺序显示文件,则可以使用-t选项。
组合使用-t选项和-r选项,则按最旧到最新顺序显示。
默认情况以字节为单位显示大小,可以-h选项显示单位。
如果希望显示目录本身的信息,则可以使用-d选项。
-l选项可以通过将输出管道传给过滤以众多富有想象力的方式使用。例:
ls -l | grep Sep
(12)显示目录树:tree (Linux)
语法为:tree [-adfFilrst] [-L level] [directory...]
其中level是树的深度,而directory是目录的名称。
-a选项显示所有文件,-s选项显示文件大小,-F选项显示一个标识文件类型的标志,-r按相反顺序输出排序,-t按时间对输出排序。
-d选项,只显示目录。
-f选项显示完整的路径名。
-i选项省略缩进。
为了限制树的深度,可以使用-L(limit)选项,后跟一个数字。
-l选项告诉tree跟随所有的符号连接。