如何判断 ls 输出中哪些是目录?似乎 ls 不区分目录和文件。我知道我可以使用 cd 进行测试,但是当我是 pth 时,有没有办法让它更明显?PS:我有一台 Debian 5.0.9 服务器,它使用不同的颜色来显示目录和文件。但是另一台 Debian 6.0.4 服务器没有这样做。
$ export LC_ALL=en_US.UTF-8
$ ls -al
total 24
drwxr-xr-x 6 pi pi 4096 Jul 23 16:34 .
drwxr-xr-x 9 pi pi 4096 Jul 23 16:33 ..
drwxr-xr-x 2 pi pi 4096 Jul 23 16:33 .A
drwxr-xr-x 2 pi pi 4096 Jul 23 16:33 B
drwxr-xr-x 2 pi pi 4096 Jul 23 16:33 .C
drwxr-xr-x 2 pi pi 4096 Jul 23 16:34 ???
Run Code Online (Sandbox Code Playgroud)
当我更改LC_ALL为 时C,首先列出点文件,unicode 文件名不可读:
$ export LC_ALL=C
$ ls -al
total 24
drwxr-xr-x 6 pi …Run Code Online (Sandbox Code Playgroud) 我不确定以下问题是否特定于 busybox:我有一个安装了 busybox 的嵌入式设备。据我了解,当创建一个目录时,通常会自动创建2个隐藏文件:.代表当前目录和..代表父目录。例如,通过键入mkdir -p /tmp/normal_dir; cd /tmp/normal_dir; ls -a,输出将为. ..。
但是,我见过一个现有目录 ( /tmp/strange_dir) 不显示.和... 也就是说,通过键入cd /tmp/strange_dir; ls -a,输出为空,尽管导航到父目录仍然有效。也就是说,通过键入cd ..,内容是正确的。
我的问题是:如何创建没有.和..(如/tmp/strange_dir)这样的目录?我很困惑。
我在 Windows 上使用 ls(来自 Msys)。默认情况下, ls 不会对目录和档案进行颜色编码,但这是我想要的。我厌倦了键入“ls -C”和“ls --color”。除了设置一个让我这样做的 bash 脚本之外,还有什么办法。(请记住,我在 Windows 上)
从左到右排序的示例列表。
DATA2
DATA4
FILE1
FILE3
Run Code Online (Sandbox Code Playgroud)
从右到左排序的示例列表。
FILE1
DATA2
FILE3
DATA4
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
这是一个例子
drwxr-xr-x+ 6 reza reza 204 Mar 5 20:23 .ssh/
Run Code Online (Sandbox Code Playgroud)
虽然我是这个目录的所有者,但我不能不使用sudo修改它!
这是为什么?我怎样才能在这里删除“+”(假设这是问题所在)?
所以,我刚刚从 nodejs.org 安装了 node.js 包,我正在四处看看它安装了什么。在/usr/local/bin那里我看到了这个所有者 24561。我在其他几个地方也看到了它。这是什么?这是什么意思?它应该root像其他一切一样吗?
lrwxr-xr-x 1 root wheel 66 Jun 23 13:02 mate -> /Applications/TextMate.app/Contents/SharedSupport/Support/bin/mate
-rwxr-xr-x 1 24561 wheel 18865984 Jun 29 09:32 node
-rwxr-xr-x 1 24561 wheel 355 Jun 29 09:32 node-waf
lrwxr-xr-x 1 root wheel 38 Jul 3 12:15 npm -> ../lib/node_modules/npm/bin/npm-cli.js
Run Code Online (Sandbox Code Playgroud)
奇怪的是,我无法通过谷歌搜索找到有关该用户的任何其他信息。如果有任何区别,请使用安装了 Xcode 的 OS X Lion 10.7.4。
即使在使用类 Unix 操作系统几年之后,这种行为仍然让我感到困惑。
当我在包含大量文件的目录中使用 ls 命令时,输出通常很好地格式化为多列。下面是一个例子:
$ ls
a.txt C.txt f.txt H.txt k.txt M.txt p.txt R.txt u.txt W.txt z.txt
A.txt d.txt F.txt i.txt K.txt n.txt P.txt s.txt U.txt x.txt Z.txt
b.txt D.txt g.txt I.txt l.txt N.txt q.txt S.txt v.txt X.txt
B.txt e.txt G.txt j.txt L.txt o.txt Q.txt t.txt V.txt y.txt
c.txt E.txt h.txt J.txt m.txt O.txt r.txt T.txt w.txt Y.txt
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试将输出重定向到一个文件,或通过管道将其传输到另一个命令,则输出中只会出现一列。使用与上面相同的示例目录,这是我通过管道将 ls 传送到 wc 时得到的结果:
$ ls | wc
52 52 312
Run Code Online (Sandbox Code Playgroud)
换句话说, wc 认为有 52 行,即使到终端的输出只有 5 行。
我没有在 …
我有一个带有自定义图标的文件夹(比如下载)。
当我执行cd Downloads然后ls,它显示
图标?
子
文件夹 1子文件夹 2
如何让 ls 命令跳过(因此不显示)图标文件?也许一个 .bash_profile 函数会覆盖 ls 或类似的东西?
谢谢!
(PS:我使用的是 OS X 10.8)
当我传递--color=always给 ls 时,它偶尔会输出一些No such file or directory错误,如下所示:
~/svn/projects/submm/adda/scat$ /bin/ls --color=always
ls: cannot access adda_output_f89: No such file or directory
ls: cannot access adda_output_f150: No such file or directory
ls: cannot access adda_output_f183: No such file or directory
ls: cannot access adda_output_f186: No such file or directory
ls: cannot access adda_output_f190: No such file or directory
...
Run Code Online (Sandbox Code Playgroud)
稍后跟随目录的内容,包括adda_output_f89着色为目录的子目录。
有一个正在运行的进程正在对该目录中的文件进行操作,但我认为它没有对ls提到的目录执行任何操作。
它不能完全重现。到目前为止,我还没有成功地找出什么时候发生和什么时候不发生的模式。它似乎发生在波浪中。也许一个过程正在快速创建和删除目录,但我认为这不是真的。
它似乎只有在我通过时才会发生--color=always,但我不能 100% 确定情况确实如此。通常我会使用别名,ls='ls --classify --color=always --human-readable'在它确实发生的地方,但是当我调用/bin/ls它时,它似乎没有发生。 …