标签: coreutils

理解 fmt (gnu coreutils)

我正在使用 fmt (GNU coreutils) 8.25,但我不明白如何使用它。特别是,我不明白以下结果。

  1. $ echo -n "a b c d e" | fmt -w3 -g3

    我期望获得

    a b
    c d
    e
    
    Run Code Online (Sandbox Code Playgroud)

    但我明白了

    a 
    b
    c 
    d
    e
    
    Run Code Online (Sandbox Code Playgroud)

    所以我想可能会fmt计算它插入并尝试的换行符

  2. $ echo -n "a b c d e" | fmt -w4 -g4

    但是,我得到:

    a
    b c
    d e
    
    Run Code Online (Sandbox Code Playgroud)

    最后,我没有得到以下内容:

  3. $ echo -n "a b c d e" | fmt -w4 -g1 我希望给

    a 
    b
    c 
    d
    e
    
    Run Code Online (Sandbox Code Playgroud)

    而是再次导致

    a
    b c
    d e
    
    Run Code Online (Sandbox Code Playgroud)

所以,显然我无法理解-w-g选项是如何工作的。 …

shell coreutils

5
推荐指数
1
解决办法
211
查看次数

为什么 df 和 df -h 显示不同的值?df -h 如何进行计算?

df -h 究竟是如何工作的?如果我运行df,我会得到这个:

Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/simfs      41943040 7659828  34283212  19% /
Run Code Online (Sandbox Code Playgroud)

如果我运行df -h,我会得到这个:

Filesystem      Size  Used Avail Use% Mounted on
/dev/simfs       40G  7.4G   33G  19% /
Run Code Online (Sandbox Code Playgroud)

问题是如何获得相同的数字?

41943040 / 1024 / 1024 = 40 好的,让我们将其他人除以 1024。

7659828 / 1024 / 1024 = 7,304981
Run Code Online (Sandbox Code Playgroud)

那么也许到1000?

7659828 / 1000 / 1000 = 7,659828
Run Code Online (Sandbox Code Playgroud)

如何df -h得到7.4G?

34283212 / 1024 / 1024 = 32,695, which is ±33G
Run Code Online (Sandbox Code Playgroud)

虽然 df 是开源的,但我已经克隆了 repo …

disk-usage coreutils

5
推荐指数
1
解决办法
3024
查看次数

tac 命令的选项会产生奇怪的输出 [理解问题]

说我有这个文件,只包含

a
b
c
b
a
Run Code Online (Sandbox Code Playgroud)

使用tac --separator=a file在BASH [在基于Debian的Linux],我得到这样的:

                  # empty line
                  # empty line
b
c
b
aacommand@prompt  # two a just before the prompt
Run Code Online (Sandbox Code Playgroud)


问题:据我所知,--separator=a定义a标志着字符串内部的中断,而不是newline. 这是正确的吗?

我已经用其他字符串尝试了更多的输入,结果却一团糟。其他选项都工作得很好,我想:如果我使用tac --before我首先得到大约五个而不是一个空行,但是这就是应该发生的事情,对吧?

utilities coreutils text-processing

4
推荐指数
1
解决办法
1511
查看次数

coreutil 的日期是如何获得如此奇怪的结果的?

I was playing around with date to try to convert expressions such as "2 hours" to a number of seconds like 7200. I thought I could perform this with invocations such as:

date -d "1970-01-01 00:00:00 + 2 hours" +"%s"
Run Code Online (Sandbox Code Playgroud)

Yet, I noticed extremely strange results while so doing. (My /etc/timezone contains "Europe/Paris", hence the use of TZ to force UTC times.)

omega:~$ TZ=utc date -d "1970-01-01 00:00:00" +"%s"             
0
omega:~$ TZ=utc date -d "1970-01-01 00:00:00 + 0 minutes" +"%s" …
Run Code Online (Sandbox Code Playgroud)

coreutils date

4
推荐指数
1
解决办法
121
查看次数

关闭 1 年的 GNU 日期错误?

现在,2014 年 1 月 6 日,CentOS 版本 6.4 上的 GNU 日期 8.4,执行以下操作:

$ date --date "last week" +"%Y-%V"
2013-01
Run Code Online (Sandbox Code Playgroud)

另一方面,

$ date --date "last week" +"%Y-%U"
2013-52
Run Code Online (Sandbox Code Playgroud)

这只是稍微好一点。

这真的是正确的行为吗?!

coreutils date

4
推荐指数
1
解决办法
178
查看次数

mv 覆盖只读文件而不提示

用于GNU Coreutils的手册mv说:

如果目标文件存在但通常不可写,标准输入是终端,并且未给出 -f 或 --force 选项,则 mv 提示用户是否替换文件。(您可能拥有该文件,或者对其目录具有写权限。)如果响应不是肯定的,则跳过该文件。

但是,mv我使用的版本(Ubuntu 14.04.3 LTS 上的 GNU coreutils 8.21)表现出意外行为:

$ which mv
/bin/mv
$ ls -l
total 0
$ echo foo > 1; chmod -w 1; cp 1 2; ls -l | cut -d' ' -f 1-5,9
-r-x------ 1 me me 4 1
-r-x------ 1 me me 4 2
$ echo bar > 2
-bash: 2: Permission denied
$ mv 1 2
$ ls -l | cut -d' …
Run Code Online (Sandbox Code Playgroud)

shell coreutils mv

4
推荐指数
1
解决办法
1331
查看次数

uname -p -i 未知

为什么会发生这种情况?显示所有其他可打印的uname内容。我不打算解决这个问题。甚至手册页uname都说这是一个常见的输出。

我只是想知道为什么。

utilities coreutils

4
推荐指数
1
解决办法
2039
查看次数

`mkdir -p` 和 `install -d` 有什么区别?

就两个命令对系统所做的更改而言,mkdir -p和正在执行的操作有什么区别install -d

c coreutils

4
推荐指数
2
解决办法
1475
查看次数

GNU coreutils stat 工具改变了吗?

GNU coreutils (8.6) 版本有stat变化吗?在最近的更新之后,我写的一些脚本调用 stat 没有按预期工作;特别是,我一直在使用stat -c %Y "${filename}". 这应该以自“Epoch”以来的秒数形式返回上次修改的时间。但是,我可以发誓这曾经采用整数的形式。但是,我现在从这个表单1287630625.956667227而不是1287630625. 由于 Bash 不能处理浮点运算,这有点烦人。这是故意改变吗?还是bug?还是我的记忆模糊了?我尝试搜索有关此的信息,但找不到任何内容。

gnu coreutils stat

3
推荐指数
2
解决办法
378
查看次数

为什么 unlink(1) 只支持一个文件?

如果可能的话,我习惯于支持多个文件名参数的命令,但unlink不:

%> unlink a b
unlink: extra operand `b'
Try `unlink --help' for more information.
Run Code Online (Sandbox Code Playgroud)

我最终使用了一个for循环。为什么unlink只需要一个文件名是否有技术原因?

command-line coreutils

3
推荐指数
1
解决办法
1139
查看次数

标签 统计

coreutils ×10

date ×2

shell ×2

utilities ×2

c ×1

command-line ×1

disk-usage ×1

gnu ×1

mv ×1

stat ×1

text-processing ×1