精华内容
下载资源
问答
  • Linux ls命令的使用

    2021-05-10 22:52:56
    1.简介ls命令用来显示目录内容,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。2.命令格式ls [OPTION]... [FILE]...3.选项说明-a,--all:显示所有档案及目录(ls内定将...

    1.简介

    ls命令用来显示目录内容,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。

    2.命令格式

    ls [OPTION]... [FILE]...

    3.选项说明

    -a,--all:显示所有档案及目录(ls内定将档案名或目录名称以“.”开头的文件视为影藏文件,默认不会列出);

    -A,--almost-all:显示除影藏文件“.”和“..”以外的所有文件列表;

    --author:与-l选项结合使用,打印出每一个文件的作者;

    -b, --escape:将文件中的不可输出的字符以反斜线“\”加字符编码的方式输出;

    --block-size=SIZE:使用指定的SIZE作为统计文件大小的单位。SIZE可以取如下字符串,或对应的数值: KB 1000, K 1024, MB 1000*1000, M 1024*1024,以及G, T, P, E, Z, Y等;

    -B, --ignore-backups:不要列出以~结尾的隐含条目,默认列出;

    -c:与“-l”选项连用时,展示ctime;与“-lt”选项连用时,输出按照文件状态改变时间排序,排序的依据是文件的索引节点中的ctime字段;

    -C:多列显示输出结果。这是默认选项;

    --color[=WHEN]:使用不同的颜色高亮显示不同类型文件,WHEN的默认取值为'always',也可以是'never'或'auto';

    -d, --directory:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录或文件;

    -D, --dired:以Emacs的dired模式输出;

    -f:此参数的效果和同时指定“aU”参数相同,并关闭“-ls --color”参数效果;

    -F, --classify:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;

    --file-type:与“-F”选项的功能相同,但是不显示“*”;

    --format=WORD:WORD可取值为across,等价于-x选项。取值为commas,等价于-m。取值为horizontal,等价于-x。取值为long,等价于-l。取值为single-column,等价于-1。取值为verbose,等价于-l。取值为vertical,等价于-C;

    --full-time:列出完整的日期与时间;

    -g:类似于-l,但不列出所属者;

    --group-directories-first:目录排在文件之前列出;

    -G, --no-group:在长格式(-l)输出时,不输出组名;

    -h, --human-readable:以可读方式显示文件大小;

    --si:以1000代替1024计算文件大小;

    -H, --dereference-command-line:使用命令列中的符号链接指示的真正目的地;

    --dereference-command-line-symlink-to-dir:遵循命令行中列出的符号链接;

    --hide=PATTERN:不列出符合PATTERN模型的隐藏文件;

    --indicator-style=WORD:追加指示符WORD到每一个文件或目录名称后,none默认 slash (-p), file-type (--file-type), classify (-F);

    -i, --inode:显示文件索引节点号(inode)。一个索引节点代表一个文件;

    -I, --ignore=PATTERN:不列出匹配PATTERN的文件或目录名;

    -k:以KB(千字节)为单位显示文件大小,类似于--block-size=1K;

    -1:数字1,与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列;

    -l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;

    -L,--dereference:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录;

    -m:用“,”号区隔每个文件和目录的名称;

    -n:以用户识别码和群组识别码替代其名称;

    -N,--literal: 直接列出文件和目录名称,包括控制字符;

    -o: 此参数的效果类似于"-l",但不列出用户组信息;

    -p, --indicator-style=slash:追加斜杠/指示符到目录名后;

    -q, --hide-control-chars:用"?"号取代控制字符,列出文件和目录名称;

    --show-control-chars:显示文件和目录名称中的控制字符;

    -Q, --quote-name:把文件和目录名称以双引号“”标示起来;

    --quoting-style=WORD:使用指定的引号模式来标识档案名称,WORD的取值有:literal, locale, shell, shell-always, c, escape;

    -r, --reverse:以文件名反序排列并输出目录内容;

    -R, --recursive:递归处理,将指定目录下的所有文件及子目录一并处理;

    -s,--size:显示文件和目录的大小,以区块为单位;

    -S:以文件大小进行排序;

    --sort=WORD:以指定的内容进行排序,而非默认的档案名称,WORD可取值:none(不排序,等于-U);extension(以条目名的最后一个扩展名排序,等于-X);size(以用条目大小排序,等于-S);time(以条目内容最后被修改时间排序,等于-t);version(以条目版本进行排序,等于-v);

    --time=WORD:当使用-t或--sort=time来按照时间排序时,WORD可取值为atime、access、use(表示使用访问时间排序);或者ctime、status(状态改变时间排序),来取代默认以内容修改时间排序;

    --time-style=STYLE:使用-l选项时,显示时间使用指定的样式风格STYLE,可取值为full-iso,long-iso,iso,locale,还有+FORMAT,FORMAT,这两项设置格式可以参考date命令的设置方法;

    -t:用文件和目录的内容修改时间排序;

    -T, --tabsize=COLS:设置每一列之间的Tab间隔符代表的宽度为COLS,默认为8个空格;

    -u:与-lt同用,表示使用访问时间排序,与-l同用,显示访问时间而非内容修改时间;

    -U:列出文件和目录名称时不予排序;

    -v:文件和目录的名称列表以版本进行排序;

    -w,--width=COLS:设置每列的最大字符数为COLS;

    -x:以从左到右,由上至下的横列方式显示文件和目录名称;

    -X:以文件和目录的最后一个扩展名排序;

    --help:显示帮助信息;

    --version:显示版本信息;

    4.常用示例

    (1)ls命令按照修改日期递减排序

    ls -t

    如果想按照修改日期递增的话使用ls -rt就行了。

    (2)ls命令按照文件大小递减排序。

    #递减排序

    ls -hS

    #递增排序

    ls -hrS

    (3)显示隐藏文件,包括当前目录和父级目录。

    [dablelv@TENCENT64 ~]$ ll -a

    total 148

    drwxr-x--- 8 dablelv dablelv 4096 Nov 23 23:56 .

    drwxr-xr-x 22 root root 4096 Jun 7 15:15 ..

    -rw------- 1 dablelv dablelv 71812 Nov 24 00:38 .bash_history

    -rw-r--r-- 1 dablelv dablelv 2153 May 2 2017 .bash_profile

    -rw------- 1 dablelv dablelv 595 Nov 24 16:57 .lesshst

    drwx------ 2 dablelv dablelv 4096 Jul 23 20:42 .ssh

    ll实际是ls -l的别成,使用alias命令可以查看相关命令。

    [dablelv@TENCENT64 ~]$ alias

    alias l.='ls -d .* --color=auto'

    alias ll='ls -l --color=auto'

    alias ls='ls --color=auto'

    alias vi='vim'

    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

    (4)以指定的文件大小类型展示。

    [dablelv@TENCENT64 ~]$ ll --block-size=K

    total 24K

    drwxrwxr-x 10 dablelv dablelv 4K Nov 21 15:08 code_root

    -rwxrwxr-x 1 dablelv dablelv 1K Nov 21 00:18 dable.php

    -rw-rw-r-- 1 dablelv dablelv 1K Nov 21 00:18 dablelala.php

    -rw-rw-r-- 1 dablelv dablelv 0K Nov 23 23:56 dablelv~

    -rw-rw-r-- 1 dablelv dablelv 1K Nov 21 00:40 dablenewnew

    drwxrwxrwx 2 dablelv dablelv 4K Nov 21 00:29 new

    drwxrwxr-x 6 dablelv dablelv 4K Nov 21 00:24 test

    以上就是Linux ls命令的使用的详细内容,更多关于Linux ls命令的资料请关注脚本之家其它相关文章!

    展开全文
  • 带你学习 ls 命令

    2021-06-10 07:08:03
    原标题:带你学习 ls 命令编译:Linux中国-wxy,作者:Seth Kenlonls 命令可以列出一个POSIX系统上的文件。这是一个简单的命令,但它经常被低估,不是它能做什么(因为它确实只做了一件事),而是你该如何优化对它的...

    原标题:带你学习 ls 命令

    编译:Linux中国-wxy,作者:Seth Kenlon

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

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

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

    GNU 还是 BSD?

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

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

    $ ls --version

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

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

    aliasls='ls --color'

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

    $ ls

    分类

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

    $ ls ~/example

    bunko jdk-10.0.2

    chapterize otf2ttf.ff

    despacer overtar.sh

    estimate.sh pandoc-2.7.1

    fop-2.3 safe_yaml

    gamestt

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

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

    $ ls ~/example

    bunko jdk-10.0.2/

    chapterize* otf2ttf.ff*

    despacer* overtar.sh*

    estimate.sh pandoc@

    fop-2.3/ pandoc-2.7.1/

    games/ tt*

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

    斜杠(/)表示目录(或“文件夹”)。

    星号(*)表示可执行文件。这包括二进制文件(编译代码)以及脚本(具有可执行权限的文本文件)。

    符号(@)表示符号链接(或“别名”)。

    等号(=)表示套接字。

    在 BSD 上,百分号(%)表示涂改whiteout (某些文件系统上的文件删除方法)。

    在 GNU 上,尖括号(>)表示门door (Illumos 和 Solaris上的进程间通信)。

    竖线(|)表示 FIFO 管道。 这个选项的一个更简单的版本是 -p,它只区分文件和目录。

    长列表

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

    $ ls -l

    -rwxrwx---. 1 seth users 455 Mar 2 2017 estimate.sh

    -rwxrwxr-x. 1 seth users 662 Apr 29 22:27 factorial

    -rwxrwx---. 1 seth users 20697793 Jun 29 2018 fop-2.3-bin.tar.gz

    -rwxrwxr-x. 1 seth users 6210 May 22 10:22 geteltorito

    -rwxrwx---. 1 seth users 177 Nov 12 2018 html4mutt.sh

    [...]

    如果你不想以字节为单位,请添加 -h 标志(或 GNU 中的 --human)以将文件大小转换为更加人性化的表示方法:

    $ ls --human

    -rwxrwx---. 1 seth users 455 Mar 2 2017 estimate.sh

    -rwxrwxr-x. 1 seth seth 662 Apr 29 22:27 factorial

    -rwxrwx---. 1 seth users 20M Jun 29 2018 fop-2.3-bin.tar.gz

    -rwxrwxr-x. 1 seth seth 6.1K May 22 10:22 geteltorito

    -rwxrwx---. 1 seth users 177 Nov 12 2018 html4mutt.sh

    要看到更少的信息,你可以带有 -o 选项只显示所有者的列,或带有 -g 选项只显示所属组的列:

    $ ls -o

    -rwxrwx---. 1 seth 455 Mar 2 2017 estimate.sh

    -rwxrwxr-x. 1 seth 662 Apr 29 22:27 factorial

    -rwxrwx---. 1 seth 20M Jun 29 2018 fop-2.3-bin.tar.gz

    -rwxrwxr-x. 1 seth 6.1K May 22 10:22 geteltorito

    -rwxrwx---. 1 seth 177 Nov 12 2018 html4mutt.sh

    也可以将两个选项组合使用以显示两者。

    时间和日期格式

    ls 的长列表格式通常如下所示:

    -rwxrwx---. 1 sethusers455 Mar2 2017 estimate.sh

    -rwxrwxr-x. 1 sethusers662 Apr29 22:27factorial

    -rwxrwx---. 1 sethusers20697793 Jun29 2018 fop-2.3-bin.tar.gz

    -rwxrwxr-x. 1 sethusers6210 May22 10:22geteltorito

    -rwxrwx---. 1 sethusers177 Nov12 2018 html4mutt.sh

    月份的名字不便于排序,无论是通过计算还是识别(取决于你的大脑是否倾向于喜欢字符串或整数)。你可以使用 --time-style 选项和格式名称更改时间戳的格式。可用格式为:

    full-iso:ISO 完整格式(1970-01-01 21:12:00)

    long-iso:ISO 长格式(1970-01-01 21:12)

    iso:iso 格式(01-01 21:12)

    locale:本地化格式(使用你的区域设置)

    posix-STYLE:POSIX 风格(用区域设置定义替换 STYLE)

    你还可以使用 date 命令的正式表示法创建自定义样式。

    按时间排序

    通常,ls 命令按字母顺序排序。你可以使用 -t 选项根据文件的最近更改的时间(最新的文件最先列出)进行排序。

    例如:

    $ touch foo bar baz

    $ ls

    bar baz foo

    $ touch foo

    $ ls -t

    foo bar baz

    列出方式

    ls 的标准输出平衡了可读性和空间效率,但有时你需要按照特定方式排列的文件列表。

    要以逗号分隔文件列表,请使用 -m

    ls-m ~/example

    bar, baz, foo

    要强制每行一个文件,请使用 -1 选项(这是数字 1,而不是小写的 L):

    $ ls -1~/bin/

    bar

    baz

    foo

    要按文件扩展名而不是文件名对条目进行排序,请使用 -X(这是大写 X):

    $ ls

    bar.xfc baz.txt foo.asc

    $ ls -X

    foo.asc baz.txt bar.xfc

    隐藏杂项

    在某些 ls 列表中有一些你可能不关心的条目。例如,元字符 . 和 .. 分别代表“本目录”和“父目录”。如果你熟悉在终端中如何切换目录,你可能已经知道每个目录都将自己称为 .,并将其父目录称为 ..,因此当你使用 -a 选项显示隐藏文件时并不需要它经常提醒你。

    要显示几乎所有隐藏文件(. 和 .. 除外),请使用 -A 选项:

    $ ls -a

    .

    ..

    .android

    .atom

    .bash_aliases

    [...]

    $ ls -A

    .android

    .atom

    .bash_aliases

    [...]

    有许多优秀的 Unix 工具有保存备份文件的传统,它们会在保存文件的名称后附加一些特殊字符作为备份文件。例如,在 Vim 中,备份会以在文件名后附加 ~ 字符的文件名保存。

    这些类型的备份文件已经多次使我免于愚蠢的错误,但是经过多年享受它们提供的安全感后,我觉得不需要用视觉证据来证明它们存在。我相信 Linux 应用程序可以生成备份文件(如果它们声称这样做的话),我很乐意相信它们存在 —— 而不用必须看到它们。

    要隐藏备份文件,请使用 -B 或 --ignore-backups 隐藏常用备份格式(此选项在 BSD 的 ls 中不可用):

    $ ls

    bar.xfc baz.txt foo.asc~ foo.asc

    $ ls -B

    bar.xfc baz.txt foo.asc

    当然,备份文件仍然存在;它只是过滤掉了,你不必看到它。

    除非另有配置,GNU Emacs 在文件名的开头和结尾添加哈希字符(#)来保存备份文件(#file#)。其他应用程序可能使用不同的样式。使用什么模式并不重要,因为你可以使用 --hide 选项创建自己的排除项:

    $ ls

    bar.xfc baz.txt #foo.asc# foo.asc

    $ ls --hide="#*#"

    bar.xfc baz.txt foo.asc

    递归地列出目录

    除非你在指定目录上运行 ls,否则子目录的内容不会与 ls 命令一起列出:

    $ ls -F

    example/ quux* xyz.txt

    $ ls -R

    quux xyz.txt

    ./example:

    bar.xfc baz.txt #foo.asc# foo.asc

    使用别名使其永久化

    ls 命令可能是 shell 会话期间最常使用的命令。这是你的眼睛和耳朵,为你提供上下文信息和确认命令的结果。虽然有很多选项很有用,但 ls 之美的一部分就是简洁:两个字符和回车键,你就知道你到底在哪里以及附近有什么。如果你不得不停下思考(更不用说输入)几个不同的选项,它会变得不那么方便,所以通常情况下,即使最有用的选项也不会用了。

    解决方案是为你的 ls 命令添加别名,以便在使用它时,你可以获得最关心的信息。

    要在 Bash shell 中为命令创建别名,请在主目录中创建名为 .bash_aliases 的文件(必须在开头包含 .)。在此文件中,列出要创建的别名,然后是要为其创建别名的命令。例如:

    aliasls='ls -A -F -B --human --color'

    这一行导致你的 Bash shell 将 ls 命令解释为 ls -A -F -B --human --color。

    你不必仅限于重新定义现有命令,还可以创建自己的别名:

    aliasll='ls -l'

    aliasla='ls -A'

    aliaslh='ls -h'

    要使别名起作用,shell 必须知道 .bash_aliases 配置文件存在。在编辑器中打开 .bashrc 文件(如果它不存在则创建它),并包含以下代码块:

    if[ -e $HOME/.bash_aliases ]; then

    source$HOME/.bash_aliases

    fi

    每次加载 .bashrc(这是一个新的 Bash shell 启动的时候),Bash 会将 .bash_aliases 加载到你的环境中。你可以关闭并重新启动 Bash 会话,或者直接强制它执行此操作:

    $ source~/.bashrc

    如果你忘了你是否有别名命令,which 命令可以告诉你:

    $ whichls

    aliasls='ls -A -F -B --human --color'

    /usr/bin/ls

    如果你将 ls 命令别名为带有选项的 ls 命令,则可以通过将反斜杠前缀到 ls 前来覆盖你的别名。例如,在示例别名中,使用 -B 选项隐藏备份文件,这意味着无法使用 ls 命令显示备份文件。可以覆盖该别名以查看备份文件:

    $ ls

    bar baz foo

    $ ls

    bar baz baz~ foo

    做一件事,把它做好

    ls 命令有很多选项,其中许多是特定用途的或高度依赖于你所使用的终端。在 GNU 系统上查看 info ls,或在 GNU 或 BSD 系统上查看 man ls 以了解更多选项。

    你可能会觉得奇怪的是,一个以每个工具“做一件事,把它做好”的前提而闻名的系统会让其最常见的命令背负 50 个选项。但是 ls 只做一件事:它列出文件,而这 50 个选项允许你控制接收列表的方式,ls 的这项工作做得非常、非常好。返回搜狐,查看更多

    责任编辑:

    展开全文
  • linux下实现ls命令

    2021-05-08 22:35:48
    Linux下实现ls命令(仅适用于ls-a pathname ; ls -l pathname; ls pathname )ls命令就是list的缩写,缺省下ls用来打印出当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单。通过ls命令...

    Linux下实现ls命令

    (仅适用于ls

    -a pathname ; ls -l pathname; ls pathname )

    ls命令就是list的缩写,缺省下ls用来打印出当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单。通过ls命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限),查看目录信息等等,ls命令在日常的linux操作中用的很多

    -a选项:表示显示该目录下的所有文件,包括隐藏文件。

    -l选项:表示显示文件的详细信息,包括访问权限,文件大小……

    例如:ls

    –a /

    ls

    –l /

    1)主要构造的函数

    void

    error(const char *err_string, int line);

    //错误处理函数,打印错误所在行数和错误信息

    void

    Demonstrate_attribute(struct stat buf, char *name);

    //获得文件属性并打印

    void

    Demonstrate_single(char *name);

    //输出文件名,命令没有-l选项。输出文件名要保持上下对齐

    void

    Demonstrate(int flag, char *pathname);

    //根据命令行参数和文件路径名来显示目标文件

    void

    Demonstrate_dir(int flag_parameter, char *path);

    //为显示某个目录下的文件做准备

    2)函数流程

    (1)获取该目录下文件的总数和最长文件名

    (2)若获该目录下所有文件的文件名,存放于变量filenames中

    (3)使用冒泡法对文件名按字母顺序存储于filenames中

    (4)调用Demonstrate()函数来显示每个文件信息

    3)程序中主要的结构体:

    参数struct

    stat *buf是一个保存文件状态信息的结构体

    A):struct

    stat {

    dev

    st_dev;//文件设备号

    ino_t

    st_ino;//文件的i-node

    mode_t

    st_mode;//文件类型和存储权限

    nlink_t

    st_nlink;//连到该文件的硬链接数目。

    uid_t

    st_uid;//文件所有者的用户id

    gid_t

    st_gid;//文件所有者的组id

    dev_t

    st_rdev;//若此文件为设备文件,则为其设备编号

    off_t

    st_size;//文件大小

    blksize_t

    st_blksize;//文件系统的I/O缓冲区大小

    blkcnt_t

    st_blocks;//占用文件区块的个数

    time_t

    st_atime;//文件最近一次被访问的时间

    time_t

    st_mtime;//文件最后一次被修改的时间

    time_t

    st_ctime;//文件最近一次被更改的时间

    }

    其中,对于st_mode包含的文件类型信息,POSIX标准定义了一系列的宏:

    S_ISLNK(st_mode)//判断是否为符号链接

    S_ISREG(st_mode)//判断是否为一般文件

    S_ISDIR(st_mode)//判断是否为目录文件

    S_ISCHR(st_mode)//判断是否为字符设备文件

    S_IBLK(st_mode)//判断是否为块设备文件

    S_ISFIFO(st_mode)//判断是否为先进先出FIFO

    S_ISFOCK(st_mode)//判断是否为socket

    B):

    struct passwd*psd;//从该结构体中获取文件所有者的用户名

    C):struct

    group*grp;//从该结构体中获取文件所有者所属组的组名

    4)心得体会

    本次课程设计我写的是Linux下的ls命令,通过这次课程设计,不仅使我对ls命令有了更深一层的认识,还认识到了系统提供的命令实现的途径和方法。之前总是使用系统命令,如今自己编程实现了一些命令,每次使用系统提供的命令和调用自己编写的命令感觉大不相同。

    5)具体解析与详细代码:

    #include

    #include

    #include

    #include

    #include

    #include

    #include

    #include

    #include

    #include

    #include

    #include

    #definePARAMETER_NONE0//无参数

    #definePARAMETER_A

    1 // -a:显示所有文件

    #definePARAMETER_L

    2 // -l:一行显示一个文件的详细信息

    #defineMAXROWLEN80//一行显示的最多字符数

    intg_leave_len

    = MAXROWLEN;//一行剩余长度,用于输出对齐

    intg_maxlen;//存放某目录下最长文件名的长度

    void

    error(const char *err_string, int line); //错误处理函数,打印错误所在行数和错误信息

    void

    Demonstrate_attribute(struct stat buf, char * name); //获取文件属性并打印

    void

    Demonstrate_single(char * name);//输出文件名,命令没有-l选项,则输出文件名时要保持上下文对齐

    void

    Demonstrate(int flag, char * pathname); //根据命令行参数和文件路径名显示目标文件

    void

    Demonstrate_dir(int flag_parameter, char * path); //为显示某个目录下的文件做准备

    int

    main(int argc, char ** argv)

    {

    int

    i, j, k, num;

    charpath[PATH_MAX+1];

    //文件路径名

    charparameter[32];

    //保存命令行参数,目标文件名和目录名不在此列

    int

    flag_parameter = PARAMETER_NONE; //用来标志参数种类,即是否有-l和-a选项

    struct

    statbuf;

    /*

    首先对命令行参数进行解析,即提取命令行参数中‘-’后的选项。用户的输入有多样性,如ls

    -l -a; ls

    -la。我们用两层循环类来解析参数,外层循环对argv[]数组中的元素依次进行内层循环的解析,二层循环对以‘-’为首的字符串进行选项提取,并把每个选项存于parameter[]数组当中,用num记下‘-’的数目,以备后用。而命令行参数中的总选项数目则用j计数。

    */

    j

    = 0,

    num

    = 0;

    for

    (i = 1 ; i < argc; i++)

    {

    if

    (argv[i][0] == '-')

    {

    for(k

    = 1; k < strlen(argv[i]); k++)

    {

    parameter[j]

    = argv[i][k];//获取-后面的参数保存到数组parameter中

    j++;

    }

    num++;

    //保存"-"的个数

    }

    }

    /*

    检查刚刚提取的选项是否合法。并且用或运算记录参数,以备后用。最后为选项数组的末尾元素赋‘\0’。

    */

    //check

    the argument because of only supporting -a ang -l

    for(i

    = 0; i < j; i++)

    {

    if

    (parameter[i] == 'a')

    {

    flag_parameter

    = PARAMETER_A;

    continue;

    }

    else

    if (parameter[i] == 'l')

    {

    flag_parameter

    = PARAMETER_L;

    continue;

    }

    else

    {

    printf("my_ls:

    invalid option -%c\n", parameter[i]);

    exit(1);

    }

    }

    parameter[j]

    = '\0';

    /*

    由上面所知num记录的是参数中‘-’的数量,因此如果num+1==argc,那说明用户所输入的命令行参数不包含目录或文件名。只是显示当前目录下的文件。因为这是我们必须自动将path赋值为当前目录。为了使其称为一个字符串,必须在末尾加‘\0’。然后进入Demonstrate_dir函数.

    */

    //print

    the information of current directory if the command without the name

    of target file and current directory

    if

    ((num + 1) == argc)

    {

    strcpy(path,

    "./");// "./"当前目录

    path[2]

    = '\0';

    Demonstrate_dir(flag_parameter,

    path);

    return

    0;

    }

    /*

    如果命令行参数包含目录或者文件名,那么我们要检查其合法性(参数中的目录或者文件是否存在)。这里我们利用stat族函数来获取文件的属性,实现上述功能。stat族函数通常有两个参数:文件路径/文件描述符,struct

    stat

    *buf类型的结构体。如果操作成功,那么buf将保存文件的属性。若合法,利用宏S_ISDIR(buf.st_mode),判断此文件是否为目录文件。若为目录文件则进入Demonstrate_dir函数,否则进入Demonstrate函数。通常情况,Demonstrate_dir函数是获取path目录下所有文件的完整路径名,在使每个文件执行Demonstrate函数。因此如果参数中是指定的文件名,则可绕过Demonstrate_dir函数,直接进入Demonstrate函数。

    */

    i=1;

    do

    {

    /*

    **如果不是目标文件名或目录,解析下一个命令行参数

    */

    if

    (argv[i][0] == '-')

    {

    i++;

    continue;

    }

    else

    {

    strcpy(path,

    argv[i]);

    /*

    **如果目标文件或目录不存在,报错并退出程序

    */

    if

    ( stat(path, &buf) == -1 )

    {

    error("stat",

    __LINE__);

    }

    if

    ( S_ISDIR(buf.st_mode) ) // argv[i]是一个目录

    //如果目录的最后一个字符不是'/',就加上'/'

    {

    if

    ( path[ strlen(argv[i])-1 ] != '/')

    {

    path[

    strlen(argv[i]) ] = '/';

    path[

    strlen(argv[i])+1 ] = '\0';

    }

    else

    {

    path[

    strlen(argv[i]) ] = '\0';

    }

    Demonstrate_dir(flag_parameter,path);

    i++;

    }

    else

    //argv[i]是一个文件

    {

    Demonstrate(flag_parameter,

    path);

    i++;

    }

    }

    }

    while (i < argc);

    return

    0;

    }

    /*

    **错误处理函数,打印出错误所在行的行数和错误信息

    */

    void

    error(const char *err_string, int line)

    {

    fprintf(stderr,

    "line:%d ", line);

    perror(err_string);

    exit(1);

    }

    /*

    **获取文件属性并打印

    */

    void

    Demonstrate_attribute(struct stat buf, char * name)

    {

    charbuf_time[32];

    //存放时间

    struct

    passwd*psd;//从该结构体中获取文件所有者的用户名

    struct

    group*grp;//从该结构体中获取文件所有者所属组的组名

    /*

    **获取并打印文件类型

    */

    //st_mode:文件内容和存取权限

    if

    (S_ISLNK(buf.st_mode)) //判断是否为符号链接

    {

    printf("l");

    }

    else

    if (S_ISREG(buf.st_mode)) //判断是否为文件

    {

    printf("-");

    }

    else

    if (S_ISDIR(buf.st_mode)) //判断是否为目录

    {

    printf("d");

    }

    else

    if (S_ISCHR(buf.st_mode)) //判断是否为字符设备文件

    {

    printf("c");

    }

    else

    if (S_ISBLK(buf.st_mode)) //判断是否为块设备文件

    {

    printf("b");

    }

    else

    if (S_ISFIFO(buf.st_mode)) //判断是否为先进先出的FIFO

    {

    printf("f");

    }

    else

    if (S_ISSOCK(buf.st_mode)) //判断是否为socket

    {

    printf("s");

    }

    /*

    **获取并打印文件所有者的权限

    */

    if

    (buf.st_mode & S_IRUSR)

    {

    printf("r");

    }

    else

    {

    printf("-");

    }

    if

    (buf.st_mode & S_IWUSR)

    {

    printf("w");

    }

    else

    {

    printf("-");

    }

    if

    (buf.st_mode & S_IXUSR)

    {

    printf("x");

    }

    else

    {

    printf("-");

    }

    /*

    **获取并打印与文件所有者同组的用户对该文件的操作权限

    */

    if

    (buf.st_mode & S_IRGRP)

    {

    printf("r");

    }

    else

    {

    printf("-");

    }

    if

    (buf.st_mode & S_IWGRP)

    {

    printf("w");

    }

    else

    {

    printf("-");

    }

    if

    (buf.st_mode & S_IXGRP)

    {

    printf("x");

    }

    else

    {

    printf("-");

    }

    /*

    **获取并打印其它用户的对该文件的操作权限

    */

    if

    (buf.st_mode & S_IROTH)

    {

    printf("r");

    }

    else

    {

    printf("-");

    }

    if

    (buf.st_mode & S_IWOTH)

    {

    printf("w");

    }

    else

    {

    printf("-");

    }

    if

    (buf.st_mode & S_IXOTH)

    {

    printf("x");

    }

    else

    {

    printf("-");

    }

    printf("

    ");

    /*

    **根据uid与gid获取文件所有者的用户名与组名

    */

    psd

    = getpwuid(buf.st_uid);

    grp

    = getgrgid(buf.st_gid);

    printf("%4d

    ",buf.st_nlink); //打印文件的链接数(该文件硬链接数目)

    printf("%-9s",

    psd->pw_name); //打印文件拥有者

    printf("%-8s",

    grp->gr_name); //打印文件所属用户组

    printf("%6d",(int)buf.st_size);

    //打印文件的大小

    strcpy(buf_time,

    ctime(&buf.st_mtime));

    buf_time[strlen(buf_time)

    - 1] = '\0';//去掉换行符

    printf("

    %s", buf_time);//打印文件的时间信息

    }

    /*

    在没有使用-l选项时,打印一个文件名,打印时上下行之间进行对齐

    */

    void

    Demonstrate_single(char *name)

    {

    int

    i, len;

    /*

    **如果本行不足以打印一个文件名则换行

    */

    if

    (g_leave_len < g_maxlen)

    {

    printf("\n");

    g_leave_len

    = MAXROWLEN;

    }

    len

    = strlen(name);

    len

    = g_maxlen - len;

    printf("%-s",

    name);

    for

    (i = 0; i < len; i++)

    {

    printf("

    ");

    }

    printf("

    ");

    /*

    **下面的2指示空两格

    */

    g_leave_len

    -= (g_maxlen + 2);

    }

    /*

    *根据命令行参数和完整路径名显示目标文件

    *参数flag:

    命令行参数

    *参数pathname:

    包含了文件名的路径名

    */

    void

    Demonstrate(int flag, char * pathname)

    {

    int

    i, j;

    struct

    stat buf;

    charname[NAME_MAX

    + 1];

    /*

    **从路径中解析出文件名

    **/

    for

    (i = 0, j = 0; i < strlen(pathname); i++)

    {

    if

    (pathname[i] == '/')

    {

    j

    = 0;

    continue;

    }

    name[j++]

    = pathname[i];

    }

    name[j]

    = '\0';

    /*

    **用lstat而不是stat以方便解析链接文件

    */

    if

    ( lstat(pathname, &buf) == -1 ) //lstat返回的是符号链接文件文件本身的状态信息

    {

    error("stat",

    __LINE__);

    }

    switch

    (flag)

    {

    case

    PARAMETER_NONE: //没有-l和-a选项

    if

    (name[0] != '.')

    {

    Demonstrate_single(name);

    }

    break;

    case

    PARAMETER_A: // -a:显示包括隐藏文件在内的所有文件

    Demonstrate_single(name);

    break;

    case

    PARAMETER_L: // -l:每个文件单独占一行,显示文件的详细属性信息

    if

    (name[0] != '.')

    {

    Demonstrate_attribute(buf,

    name);

    printf("

    %-s\n", name);

    }

    break;

    case

    PARAMETER_A + PARAMETER_L://同时有-a和-l选项的情况

    Demonstrate_attribute(buf,

    name);

    printf("

    %-s\n", name);

    break;

    default:

    break;

    }

    }

    /*为显示目录下的文件做准备*/

    void

    Demonstrate_dir(int flag_parameter, char *path)

    {

    DIR

    *dir;

    struct

    dirent *ptr;

    int

    count = 0;

    char

    filenames[256][PATH_MAX + 1],temp[PATH_MAX + 1];

    //获取该目录下文件总数和最长的文件名

    dir

    = opendir(path);

    if

    (dir == NULL)

    {

    error("opendir",

    __LINE__);

    }

    while

    ((ptr = readdir(dir)) != NULL)

    {

    if

    (g_maxlen < strlen(ptr->d_name))

    g_maxlen =

    strlen(ptr->d_name);

    count++;

    }

    closedir(dir);

    if(count

    > 256)

    error("too

    many files under this dir",__LINE__);

    int

    i, j, len = strlen(path);

    //获取该目录下所有的文件名

    dir

    = opendir(path);

    for(i

    = 0; i < count; i++)

    {

    ptr

    = readdir(dir);

    if(

    ptr == NULL)

    {

    error("readdir",__LINE__);

    }

    strncpy(filenames[i],path,len);

    //filenames存放目录下的所有文件名

    filenames[i][len] =

    '\0';

    strcat(filenames[i],ptr->d_name);

    filenames[i][len +

    strlen(ptr->d_name)] = '\0';

    }

    //使用冒泡法对文件名进行排序,排序后文件名按字母顺序存储于filenames

    for(i

    = 0; i < count-1; i++)

    for(j

    = 0; j < count - 1 - i; j++)

    {

    if(

    strcmp(filenames[j],filenames[j + 1]) > 0 )

    {

    strcpy(temp,filenames[j

    + 1]);

    temp[strlen(filenames[j

    + 1])] = '\0';

    strcpy(filenames[j

    + 1],filenames[j]);

    filenames[j +

    1][strlen(filenames[j])] = '\0';

    strcpy(filenames[j],

    temp);

    filenames[j][strlen(temp)]

    = '\0';

    }

    }

    for(i

    = 0; i < count; i++)

    Demonstrate(flag_parameter,

    filenames[i]);

    closedir(dir);

    //如果命令行中没有-l选项,打印一个换行符

    if(

    (flag_parameter & PARAMETER_L) == 0)

    printf("\n");

    }

    展开全文
  • Linux ls命令用法

    千次阅读 2021-05-18 04:11:52
    1、ls命令简介ls 命令是 Linux 下最常用的命令。ls 命令就是 list 的缩写,缺省下 ls 用来打印出当前目录的清单,如果 ls 指定其他目录,那么就显示指定目录里的文件及文件夹清单。通过 ls 命令不仅可以查看 Linux ...

    66b52468c121889b900d4956032f1009.png

    8种机械键盘轴体对比

    本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

    1、ls命令简介

    ls 命令是 Linux 下最常用的命令。ls 命令就是 list 的缩写,缺省下 ls 用来打印出当前目录的清单,如果 ls 指定其他目录,那么就显示指定目录里的文件及文件夹清单。

    通过 ls 命令不仅可以查看 Linux 文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限),查看目录信息等等, ls 命令在日常的 Linux 操作中用的很多,在此给大家介绍一下 ls 命令的使用方法。

    命令格式1ls [选项] [目录]

    ls命令常用参数参数描述-b该ls命令选项可以把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。

    -c该ls命令选项可以输出文件的 i 节点的修改时间,并以此排序。

    -d该ls命令选项可以将目录象文件一样显示,而不是显示其下的文件。

    -e该ls命令选项可以输出时间的全部信息,而不是输出简略信息。

    -f -U该ls命令选项可以对输出的文件不排序。

    -g无用。

    -i该ls命令选项可以输出文件的 i 节点的索引信息。

    -k该ls命令选项可以以 k 字节的形式表示文件的大小。

    -l该ls命令选项可以列出文件的详细信息。

    -m该ls命令选项可以横向输出文件名,并以“,”作分格符。

    -n该ls命令选项可以用数字的GUID代替名称。

    -o该ls命令选项可以显示文件的除组信息外的详细信息。

    -p -F该ls命令选项可以在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/“表示目录;[email protected];“

    -q该ls命令选项可以用?代替不可输出的字符。

    -r该ls命令选项可以对目录反向排序。

    -s该ls命令选项可以在每个文件名后输出该文件的大小。

    -t该ls命令选项可以以时间排序。

    -u该ls命令选项可以以文件上次被访问的时间排序。

    -x该ls命令选项可以按列输出,横向排序。

    -A该ls命令选项可以显示除 “.”和“..”外的所有文件。

    -B该ls命令选项不输出以 “~”结尾的备份文件。

    -C该ls命令选项可以按列输出,纵向排序。

    -G该ls命令选项可以输出文件的组的信息。

    -L该ls命令选项可以列出链接文件名而不是链接到的文件。

    -N该ls命令选项将不限制文件长度。

    -Q该ls命令选项可以把输出的文件名用双引号括起来。

    -R该ls命令选项可以列出所有子目录下的文件。

    -S该ls命令选项可以以文件大小排序。

    -X该ls命令选项可以以文件的扩展名(最后一个 . 后的字符)排序。

    -1该ls命令选项可以一行只输出一个文件。

    –color=no该ls命令选项可以不显示彩色文件名

    –help该ls命令选项可以在标准输出上显示帮助信息。

    2、ls 常用示例

    2.1 ls 不带参数运行

    0a17930eb063473785aca327242a001f.png

    不带参数运行ls会只列出文件或者目录。看不到其他信息输出(译注:有时候你发现无参数的ls命令和这里描述的不同,那有可能是你的ls命令实际上带参数的ls别名)

    2.2 ls -l 使用长清单模式

    8754faaec0b7189ef8968287500ea046.png

    使用-l字符(小写L字符),会显示当前目录内容的长列表。在接下来的例子中,我们会结合-l参数(这个参数经常使用)来得到更好的结果。

    输出内容说明如下:第1列

    第一个字母d意味着内容是目录或者文件。在上面的截图中,Desktop、 Documents、 Downloads 和 lynis-1.3.8是目录。如果是’-‘(减号),这意味着它的内容是文件。当它是l(小写l字符),意味这内容是链接文件。

    下面的9个字符是关于文件权限。前3个rwx字符是文件的拥有者的权限,第二组3rwx是文件的所有组的权限,最后的rwx是对其他人访问文件的权限。

    第2列这行告诉我们有多少链接指向这个文件。

    第3列这行告诉我们谁是这个文件/文件夹的所有者。

    第4列这行告诉我们谁是这个文件/文件夹的所有组。

    第5列这行告诉我们这个文件/文件夹的以字节为单位的大小。 目录的大小总是4096字节。

    第6列这告诉我们文件最后的修改时间。

    第7列这告诉我们文件名或者目录名。

    2.3 ls -lh 显示文件大小

    c65a475be195990bf7129c84c05d2fa2.png

    以字节为单位看大小可能会不方便。6.5M读起来比6727680字节更简单。要这么做,我们可以使用-h与-l结合的参数。-h参数意味着便于人识别。

    364cab9275ba4b21e748f1c59a11b0c3.png

    另外一个可以这么做的参数是–si。这个参数和-h参数类似,但是-si以1000为单位,而-h以1024为单位。

    2.4 ls -lhS 排序文件大小

    2b0f161604f876c362e0aa12a15743a6.png

    在我们可以显示文件大小之后,我们希望以文件大小排序。我们可以使用-S参数来这么做。这列表会从大到校排序。

    2.5 ls -l –block-size 测量大小

    ls可以通过使用-block-size=SIZE改单位大小。这里的SIZE是:

    K = Kilobyte M = Megabyte G = Gigabyte T = Terabyte P = Petabyte E = Exabyte Z = Zettabyte Y = Yottabyte

    比如,我们希望使用MB作为单位大小。所以语法就会像这样:

    3cdb3c4b6e093ec88e5162549e58df8e.png

    2.6 ls -a 显示隐藏文件

    在Linux中,以”.”(点号)开头的文件是隐藏文件。为了在ls命令中显示它,我们可以使用-a选项。

    32182dbb7b2c852d73d03c8e12fd50c5.png

    2.7 ls -d */ 只列出目录条目

    如果我们希望只列出目录,我们可以使用-d选项。

    6e2aad9304989367c10b924a6e9925fc.png

    2.8 ls -g 不打印所有者信息

    要这么做,我们使用-g选项。

    e1096123a2b9ecdd1fb9dee86e71423f.png

    2.9 ls -lG 不打印组信息

    -g隐藏了拥有者信息,—G会隐藏组信息。

    54d0887944946de8512eca7a6ee74f0b.png

    2.10 ls -n 打印UID和GID

    如果你想以数字方式列出项的所有者和所有组(即UID和GID),我们可以带-n选项使用ls命令。这里是个例子。

    d0ec344c96518ec5494a04211bd348fe.png

    从上面的例子中,我们知道用户pungki的UID是100,GID是1000,而root组的GID是0。

    2.11 ls –color=never 不带颜色打印

    一些Linux发行版已经对ls命令启用彩色。这会使ls以各种颜色打印列表。如果你不想要这样,你可以使用 –color=never 参数。

    7fb1c423d19564db9ba004b319d423a9.png

    2.12 ls -li 打印每个文件的索引号

    为了打印索引或者大家俗称的inode号,我们可以使用-i选项。索引号会显示在第一列。

    0203d11f9292db96fa1c2498c44887a6.png

    2.13 ls -p 增加/ (斜线) 标记目录

    要这么做,使用-p选项。

    d5b5a81a84a2c9686e3618b4eeb1a1a5.png

    2.14 ls -r 排序时反转顺序

    你或许需要在列出条目时反转顺序。要这么做,你可以使用-r选项。

    bd421cd43de5de3822476330026df0c4.png

    2.15 ls -R 递归列出子目录

    带-R参数后,你可以列出包含它子目录的目录。

    51c1222e1cc8621c3a1a5db55e86f950.png

    2.16 ls -lX 扩展名排序

    你可以使用-X参数或者–sort=extension来通过扩展名来排序(译注:这样对于筛选不同类型的文件很有用)。

    $ ls -lX

    $ ls –sort=extension

    052759812d9377ca364f63e7f105328f.png

    2.17 ls -lt 通过修改时间列出

    使用-t选项会按修改时间排序,新的文件在前。

    8704760d38dac3636e1d7ba5697af0db.png

    2.18 ls ~ 列出你的主目录

    要列出你的主目录,你可以用”~”(波浪号)来代表它。这样你就不必输入完整的目录名。让我们假设家文件名为/home/pungki,那么波浪号就对/home/pungki有意义了。

    40f55a8913123d25d857a9771ac1e4ce.png

    2.19 ls ../ 列出父目录

    无论你在那个目录,你可以列出父目录而不必输入完整路径。这是个例子。

    $ ls ../

    这回列出1层之上的目录内容。

    $ ls ../../

    这回列出2层之上的目录内容(译注:可不支持“…”来代表2层之上)。

    7342d336ef73e7c5cf43ae62f62e147f.png

    2.20 ls –version 查看ls命令版本

    使用–version参数打印它。

    80677183799187b72d5a20478beee777.png

    展开全文
  • 【Linux】- ls命令详解

    2021-05-20 04:31:34
    1 命令功能:列出当前目录下或者指定目录下的所有文件和目录,ls是list的缩写。2 命令语法:ls 【选项】 【目录名】 #注:【】中的内容为非必选项3 命令选项:-a 列出目录下的所有文件,包含以.开头的隐藏文件。-A ...
  • 本文介绍的是linux中的ls命令,ls的单词是list files的缩写,意思的列出目录文件。首先我们在admin用户的当前路径,新建一个test的文件夹,为了方便本文操作和介绍,创建了不同文件类型,如下: 1. ls的基本使用,不...
  • ls命令简介

    2021-05-17 07:59:47
    简介ls命令主要用于查看目录信息,如目录下的文件、文件夹等。语法ls[参数]目录名若省略目录名,代表当前目录参数-a,不隐藏任何以.开始的项目--all-A,列出除.及..以外的任何项目--almost-all--author与-l同时使用时...
  • ls命令详解

    2021-03-08 19:43:46
    ls命令用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。 语法 ls(选项)(参数) 常用组合 [1]查看文件详情:ls -l 或 ll [2]增强对文件大小...
  • ls命令是列出目录内容的最流行且非常有用的命令。 在本文中,我们将解释如何使用ls sort选项按大小列出目录内容。1)按大小列出目录中的文件(排序)要列出具有大小排序的特定目录的内容,我们将使用-lS选项和ls命令。 ...
  • Linux ls命令

    2021-05-18 01:55:23
    Linux(Fedora/Ubuntu/RedHat) ls 命令经常要使用,通过使用 ls 命令可以查看linux文件夹包含的文件...一、ls命令使用介绍ls命令使用权限:所有用户。格式:ls [选项] [目录名]。功能:列出目标目录中所有的子目录和...
  • linxu下的ls命令是用来显示目标列表的。下面由学习啦小编为大家整理了linux的ls命令的详细解释的相关知识,希望对大家有帮助!一、linux中的ls命令的详细解释ls命令ls命令用来显示目标列表,在Linux中是使用率较高的...
  • Linux中ls命令的实现

    2021-05-10 18:57:11
    ls命令是Linux下最常用的命令之一,ls跟dos下的dir命令是一样的都是用来列出目录下的文件,下面我们就来一起看看ls的实现方法。#include 是POSIX.1标准定义的unix类目录操作的头文件,包含了许多UNIX系统服务的函数...
  • 一:ls命令是最常用的linux命令了:下面是ls--help里面的用法在提示符下输入ls--help,屏幕会显示该命令的使用格式及参数信息:先介绍一下ls命令的主要参数:-a列出目录下的所有文件,包括以.开头的隐含文件。-A显示...
  • linux ls 命令

    2021-03-06 19:06:56
    ls 命令是 Linux 下最常用的命令之一,用来查询目录下的内容(list directory contents)。本文将介绍其基本的用法和一些典型的用例。笔者使用的测试环境为 ubuntu 16.04。基本输出直接在命令行中输入 ls 并回车。这是...
  • 在Linux上实现自定义的 ls命令

    千次阅读 多人点赞 2021-10-25 23:52:08
    文章目录三、编写ls命令1. 阅读联机帮助2. ls是如何工作的3. 如何编写ls4. 改进ls命令5. ls -l 是如何工作的6. 如何编写 ls -l 三、编写ls命令 1. 阅读联机帮助 列出有关文件的信息(默认为当前目录)。如果未指定 ...
  • Linux:ls命令如何使用

    2021-05-11 19:03:18
    1、ls命令可以在Linux中显示出文件和目录,如下图。当然,ls命令不可能只能实现这么简单的操作,下面就通过一些参数来查看ls的其他用法2、ls -l,使用长清单模式来列出文件和目录,可以详细的看出文件或文件夹的大小...
  • Linux命令基础2-ls命令

    2021-05-11 01:32:37
    本文介绍的是linux中的ls命令,ls的单词是list files的缩写,意思的列出目录文件。首先我们在admin用户的当前路径,新建一个test的文件夹,为了方便本文操作和介绍,创建了不同文件类型,如下: 1. ls的基本使用,不...
  • Linux ls 命令详解

    2021-05-12 11:41:24
    Linux ls命令详解Linux中ls命令用于显示指定工作目录下之内容,其内容就是指定的工作目录所含之文件及子目录,该命令的用法为“ls [参数] [目录名]”,其常用参数有“-a”、“-A”、“-l”、“-U”、“-d”、“-1”...
  • ls 命令用法说明 命令名称:ls 英文原理:list 命令所在路径:/bin/ls 执行权限:所有用户 功能描述:显示目录文件 语法:ls [选项 -aldrtAFR] [文件或目录] 没有带参数则显示当前目录下的目录文件,带了...
  • linux下ls命令使用说明

    2021-05-10 14:32:29
    在linux下有一个非常重要,而且又常用的命令,那就是ls ,ls命令是英文单词(list的缩写)命令的使用方法为 [root@localhost ~]#ls -参数,如下图所示在linux命令提示符界面中,我们可以采用man命令的方式查看命令的具体...
  • ls命令估计是我们在linux/unix里面用的最多的一个命令了,我们就用c来简单的实现一下ls命令。//// ls.c// apue//// Created by chenqing on 13-8-22.// Copyright (c) 2013年 chenqing. All rig...
  • Windows10 ls命令

    2021-10-09 13:18:06
    windows没有ls命令ls命令是linux和mac才有的命令,windows想要显示当前目录下的文件,可用dir命令。
  • 用户自己安装软件的目录) /sbin超级管理员root的可执行文件目录 /proc 此目录是系统内存的映射,会保留进程运行的一些信息 /etc系统软件的启动和配置目录 /dev设备文件所在目录 /home/user用户家目录 2.ls命令常规...
  • ls命令中的 time-style

    2021-05-13 05:26:00
    在linux使用ls命令时,ls -l 默认只显示“月-日”,而不显示“年”,这样就给我们查看文件的时间属性带来困扰,这时侯,我们可以指定time-style(时间显示类型)。linux中time-style的参数为:- `full-iso'- `long-iso...
  • ls命令就是list的缩写。默认情况下ls用来查看当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单。通过ls命令可以查看Linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、...
  • Linux ls命令详解

    2021-05-10 07:21:30
    ls常见命令参数ls: -F 给不同的文件添加不同表示,添加帽子d/ l* =s-a: 显示隐藏文件 以.开头的文件-p: 只给目录添加/-t: 按照修改时间排序 time--time-style=long-iso: ls -l --time-style=long-iso 显示友好长格式...
  • ls命令最基本的形式是显示当前目录下的文件和目录。ls的输出列表是按字母排序的(列排序)。 1. ls -F:-F参数在目录后面加了正斜杠(/),带有斜杠的为目录,不带的为文件,可执行文件后面带有星号(*),符号...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 622,668
精华内容 249,067
关键字:

ls命令

友情链接: cascaded-h-bridge.rar