加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

带你精通Linux的ls命令

发布时间:2019-07-30 18:58:00 所属栏目:Windows 来源:Seth Kenlon
导读:副标题#e# Linux 的 ls 命令拥有数量惊人的选项,可以提供有关文件的重要信息。 ls 命令可以列出一个 POSIX 系统上的文件。这是一个简单的命令,但它经常被低估,不是它能做什么(因为它确实只做了一件事),而是你该如何优化对它的使用。 要知道在最重要的
副标题[/!--empirenews.page--]

带你精通Linux的ls命令

Linux 的 ls 命令拥有数量惊人的选项,可以提供有关文件的重要信息。

ls 命令可以列出一个 POSIX 系统上的文件。这是一个简单的命令,但它经常被低估,不是它能做什么(因为它确实只做了一件事),而是你该如何优化对它的使用。

要知道在最重要的 10 个终端命令中,这个简单的 ls 命令可以排进前三,因为 ls 不会只是列出文件,它还会告诉你有关它们的重要信息。它会告诉你诸如拥有文件或目录的人、每个文件修改的时间、甚至是什么类型的文件。它的附带功能能让你了解你在哪里、附近有些什么,以及你可以用它们做什么。

如果你对 ls 的体验仅限于你的发行版在 .bashrc 中的别名,那么你可能错失了它。

GNU 还是 BSD?

在了解 ls 的隐藏能力之前,你必须确定你正在运行哪个 ls 命令。有两个最流行的版本:包含在 GNU coreutils 包中的 GNU 版本,以及 BSD 版本。如果你正在运行 Linux,那么你很可能已经安装了 GNU 版本的 ls(LCTT 译注:几乎可以完全确定)。如果你正在运行 BSD 或 MacOS,那么你有的是 BSD 版本。本文会介绍它们的不同之处。

你可以使用 --version 选项找出你计算机上的版本:

  1. $ ls --version

如果它返回有关 GNU coreutils 的信息,那么你拥有的是 GNU 版本。如果它返回一个错误,你可能正在运行的是 BSD 版本(运行 man ls | head 以确定)。

你还应该调查你的发行版可能具有哪些预设选项。终端命令的自定义通常放在 $HOME/.bashrc$HOME/.bash_aliases$HOME/.profile 中,它们是通过将 ls 别名化为更复杂的 ls 命令来完成的。例如:

  1. alias ls='ls --color'

发行版提供的预设非常有用,但它们确实很难分辨出哪些是 ls 本身的特性,哪些是它的附加选项提供的。你要是想要运行 ls 命令本身而不是它的别名,你可以用反斜杠“转义”命令:

  1. $ ls

分类

单独运行 ls 会以适合你终端的列数列出文件:

  1. $ ls ~/example
  2. bunko        jdk-10.0.2
  3. chapterize   otf2ttf.ff
  4. despacer     overtar.sh
  5. estimate.sh  pandoc-2.7.1
  6. fop-2.3      safe_yaml
  7. games        tt

这是有用的信息,但所有这些文件看起来基本相同,没有方便的图标来快速表示出哪个是目录、文本文件或图像等等。

使用 -F(或 GNU 上的长选项 --classify)以在每个条目之后显示标识文件类型的指示符:

  1. $ ls ~/example
  2. bunko         jdk-10.0.2/
  3. chapterize*   otf2ttf.ff*
  4. despacer*     overtar.sh*
  5. estimate.sh   pandoc@
  6. fop-2.3/      pandoc-2.7.1/
  7. games/        tt*

使用此选项,终端中列出的项目使用简写符号来按文件类型分类:

  • 斜杠(/)表示目录(或“文件夹”)。
  • 星号(*)表示可执行文件。这包括二进制文件(编译代码)以及脚本(具有可执行权限的文本文件)。
  • 符号(@)表示符号链接(或“别名”)。
  • 等号(=)表示套接字。
  • 在 BSD 上,百分号(%)表示涂改whiteout(某些文件系统上的文件删除方法)。
  • 在 GNU 上,尖括号(>)表示door(Illumos 和 Solaris上的进程间通信)。
  • 竖线(|)表示 FIFO 管道。    这个选项的一个更简单的版本是 -p,它只区分文件和目录。

(LCTT 译注:在支持彩色的终端上,使用 --color 选项可以以不同的颜色来区分文件类型,但要注意如果将输出导入到管道中,则颜色消失。)

长列表

ls 获取“长列表”的做法是如此常见,以至于许多发行版将 ll 别名为 ls -l。长列表提供了许多重要的文件属性,例如权限、拥有每个文件的用户、文件所属的组、文件大小(以字节为单位)以及文件上次更改的日期:

  1. $ ls -l
  2. -rwxrwx---. 1 seth users         455 Mar  2  2017 estimate.sh
  3. -rwxrwxr-x. 1 seth users         662 Apr 29 22:27 factorial
  4. -rwxrwx---. 1 seth users    20697793 Jun 29  2018 fop-2.3-bin.tar.gz
  5. -rwxrwxr-x. 1 seth users        6210 May 22 10:22 geteltorito
  6. -rwxrwx---. 1 seth users         177 Nov 12  2018 html4mutt.sh
  7. [...]

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读