当我们经常使用Unix操作系统时,大家往往会陷入某种固定的使用模式。有时,您没有养成以尽可能最好的方式做事的习惯。有时,您的不良习惯甚至会导致出现混乱。纠正此类缺点的最佳方法之一,就是有意识地采用抵制这些坏习惯的好习惯。我们在文章中提出了几个值得采用的 Unix操作系统 命令行习惯——帮助您克服许多常见使用怪癖,并在该过程中提高命令行工作效率的好习惯。
在单个命令中创建目录树
1 演示了最常见的 Unix操作系统 坏习惯之一:一次定义一个目录树。
坏习惯 1 的示例:单独定义每个目录树 ~ $ mkdir tmp
~ $ cd tmp
~/tmp $ mkdir a
~/tmp $ cd a
~/tmp/a $ mkdir b
~/tmp/a $ cd b
~/tmp/a/b/ $ mkdir c
~/tmp/a/b/ $ cd c
~/tmp/a/b/c $
使用 mkdir 的 -p 选项并在单个命令中创建所有父目录及其子目录要容易得多。但是即使对于知道此选项的管理员,他们在命令行上创建子目录时也仍然束缚于逐步创建每级子目录。花时间有意识地养成这个好习惯是值得的。
好习惯 1 的示例:使用一个命令来定义目录树
~ $ mkdir -p tmp/a/b/c
您可以使用此选项来创建整个复杂的目录树(在脚本中使用是非常理想的),而不只是创建简单的层次结构。例如:
好习惯 1 的另一个示例:使用一个命令来定义复杂的目录树
~ $ mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}
过去,单独定义目录的唯一借口是您的 mkdir 实现不支持此选项,但是在大多数系统上不再是这样了。IBM、AIX®、mkdir、GNU mkdir 和其他遵守单一 Unix操作系统规范 (Single Unix Specification) 的系统现在都具有此选项。
对于仍然缺乏该功能的少数系统,您可以使用 mkdirhier 脚本,此脚本是执行相同功能的 mkdir 的包装: ~ $ mkdirhier project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}
Unix操作系统更改路径;不要移动存档
另一个不良的使用模式是将 .tar 存档文件移动到某个目录,因为该目录恰好是您希望在其中提取 .tar 文件的目录。其实您根本不需要这样做。您可以随心所欲地将任何 .tar 存档文件解压缩到任何目录——这就是 -C 选项的用途。在解压缩某个存档文件时,使用 -C 选项来指定要在其中解压缩该文件的目录:
好习惯 2 的示例:使用选项 -C 来解压缩 .tar 存档文件 ~ $ tar xvf -C tmp/a/b/c newarc.tar.gz
相对于将存档文件移动到您希望在其中解压缩它的位置,在Unix操作系统中切换到该目录,然后才解压缩它,养成使用 -C 的习惯则更加可取——当存档文件位于其他某个位置时尤其如此。
这些都是Unix操作系统中一些人总结的好的使用习惯。希望大家也能够养成好的习惯。
【编辑推荐】