标签: coreutils

三月最后一个星期日的 touch -t 错误

如果日期代码表示任何一年 3 月最后一个星期日的 2:00:00AM 到 2:59:59AM,touch -t 会给我“无效的日期格式”错误(我已经检查过 2023,2014,2016,2018 )。核心实用程序中这种奇怪的现象让我大吃一惊。这是一些已知的错误吗?有解决方法吗?

\n

例子:

\n
$ touch -t 201603270159.59 myfile.txt #1:59AM works\n$ touch -t 202303260200.00 myfile.txt #2:00AM fails\ntouch: invalid date format \xe2\x80\x98202303260200.00\xe2\x80\x99\n$ touch -t 201603270259.59 myfile.txt #2:59AM fails\ntouch: invalid date format \xe2\x80\x98201603270259.59\xe2\x80\x99\n$ touch -t 201603270300.00 myfile.txt #3:00AM works\n$ touch -t 202303270200.00 myfile.txt #2:00AM the next day works\n
Run Code Online (Sandbox Code Playgroud)\n

(这些内容为 YYYYMMDDHHMM.SS)。

\n

我接触了 5000 个文件的集合,这些文件的时间戳可追溯到 12 年前。这是触摸失败的日期时间戳列表。问题日期始终是三月的最后一个星期日

\n
touch -t 201403300248.57 fileA.txt\ntouch -t 201403300251.21 fileB.txt\ntouch -t 201403300253.03 fileC.txt\ntouch -t 201603270252.42 fileD.txt\ntouch -t 201603270234.43 …
Run Code Online (Sandbox Code Playgroud)

command-line bug-reporting date coreutils

8
推荐指数
1
解决办法
784
查看次数

`ls --author` 是什么意思?

究竟是什么意思

ls --author
Run Code Online (Sandbox Code Playgroud)

它真的返回文件或所有者的作者吗?如何为文件设置作者?我必须实现这部分 ( ls --author),所以需要知道它到底是什么。

command-line coreutils

7
推荐指数
2
解决办法
6603
查看次数

how do I check coreutils version?

How do i check the version of coreutils? gnu coreutils says they are at version 5. Im sure Ubuntu is a variation on that. I tried:

info coreutils
File: coreutils.info,  Node: coreutils invocation,  Prev: Standards conformance,  Up: Common options

2.14 ‘coreutils’: Multi-call binary
Run Code Online (Sandbox Code Playgroud)

is the version really 2.14? that seem really dated. Is that right? Or am I checking the wrong thing?

versions info coreutils

7
推荐指数
1
解决办法
1万
查看次数

`rm -rf ` 和 `rm -r` 具有相同的结果

请记住,我只是在学习 bash,所以请以温和的方式解释。

rm -rf并且rm -r似乎在做同样的事情。教程 ( https://help.ubuntu.com/community/Beginners/BashScripting ) 指出这-f是强制的,计算机不会请求删除文件的权限。

为了验证这一点,我创建了一个锁定的文件,但-r-rf达到不删除文件相同的结果(权限被拒绝)。

为什么是这样?

rm coreutils

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

头有奇怪的行为

我已经从 Ubuntu 18.04 中的 Common Crawl下载了一个warc 文件。使用 gzip 解压缩后,我尝试使用head. 我第一次尝试:

head -c 29 CC-MAIN-20210620114611-20210620144611-00436.warc
Run Code Online (Sandbox Code Playgroud)

它产生了预期的结果,输出了文件的前 29 个字节:

WARC/1.0
WARC-Type: warcinfo
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用 30 而不是 29,则会产生我意想不到的结果:

head -c 30 CC-MAIN-20210620114611-20210620144611-00436.warc
Run Code Online (Sandbox Code Playgroud)

输出:

WARC/1.0
Run Code Online (Sandbox Code Playgroud)

这只是文件的前 10 个字节,而不是前 30 个字节。如果我使用head -c 31,结果是预期的再次返回。我不知道这是否是一个错误,或者是否有我不知道的关于头部如何工作的细节。

command-line coreutils

6
推荐指数
1
解决办法
891
查看次数

rm -I 防止意外 rm

我只是alias rm="rm -I"为了防止意外rm命令而创建的。

-I     prompt  once before removing more than three files, or when removing recursively.
       Less intrusive than -i, while still giving protection against most mistakes
Run Code Online (Sandbox Code Playgroud)

但它不起作用。我在使用时没有得到任何提示rm -rf

rm coreutils

5
推荐指数
2
解决办法
518
查看次数

如何制作coreutils的静态二进制文件?

我正在尝试制作 rm 的静态二进制文件,因此我尝试使用以下命令编译 coreutils

configure; make SHARED=0 CC='gcc -static'; make install
Run Code Online (Sandbox Code Playgroud)

但我一直遇到错误。

首先 make 抱怨 c99 或 gnu99,我通过将 -std=gnu99 添加到 CC 值来解决这个问题:

make SHARED=0 CC='gcc -static -std=gnu99'
Run Code Online (Sandbox Code Playgroud)

之后它说:

/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbeginT.o: relocation R_X86_64_32 against `__TMC_END__' can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-linux-gnu/4.8/crtbeginT.o: error adding symbols: Bad value
Run Code Online (Sandbox Code Playgroud)

我尝试添加 -fPIC 就像添加 -std 选项一样,但无济于事。

甚至可以制作 coreutils 的静态二进制文件吗?(只对 rm 感兴趣)如果是这样,如何?(我有 0 次构建 linux 二进制文件的经验)

PS:我从ubuntu站点下载了coreutils源码,trusty.(coreutils-8.21)

gcc binary make coreutils

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

核心实用程序中的多种形式的总和

在阅读GNU Core Utilities - Wikipedia 后,我发现多个总和

me@alpha:~$ cksum nohup.out 
4104911401 101860700 nohup.out
me@alpha:~$ b2sum nohup.out 
468c86394c5c4be04d0bce3b98584197b0c3f4cbb630144818f9d77d48ab7296e4c53db481b6bdd7c46dd5203d3f016d9ef01b126806e04be5003aeebb1bc6
22  nohup.out                                                                                                                
me@alpha:~$ sum nohup.out 
37767 99474
me@alpha:~$ sha1sum nohup.out 
79106925d593e18bd148ba94a6e4fb9da02e8c47  nohup.out
 me@alpha:~$ md5sum nohup.out 
3be4b17f18e4715d849a31ae482565cf  nohup.out
Run Code Online (Sandbox Code Playgroud)

我几个月前开始学习linux,我是否必须区分它们并在日常操作中使用它们?

coreutils

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

如何编译官方ls.c源代码的sorcecode?

我下载了官方ls.c源码并尝试用gcc编译。问题是 gcc 向我显示了很多错误。

$ gcc ls.c -o ls

ls.c:38:20: fatal error: config.h:
Run Code Online (Sandbox Code Playgroud)

我确实通过使用 find 命令在我的字典中搜索来修复了很多错误

$ find /usr/src/ -name "nameofthelibary" 2> /dev/null
Run Code Online (Sandbox Code Playgroud)

对于某些库,我找到了正确的路径,因此例如我可以将它们放入#include <config.h> => #include </usr/src/linuxheader.../config.h> 我提到的此方法适用于某些库,但不适用于标头#include "die.h"

所以我现在的问题是:有什么方法可以编译这个 ls.c 吗?cz 我想通过修改它来了解它是如何工作的

compiling coreutils

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

Bash 按非字典顺序对以标点符号开头的行进行排序

我有一个包含行的文件,其中一些以!字符开头,一些以字符?开头,一些以空格 ( ) 字符开头。第二个字符始终是字母表中的字母。

当我尝试使用sortcoreutils 中的 bash 命令时,这似乎忽略了第一个字符,并仅根据第二个字符进行排序。

这让我非常惊讶,因为我认为排序会根据标点符号的 ascii 值来处理标点符号,并将所有行集中!在一起,然后将所有?行集中在一起,等等。

特别是,文档说有一个-d选项,它明确指示sort命令忽略此类标点符号。但我想要的是相反的行为,并且没有选择“逆转”这种行为。就好像这个-d选项已经以某种方式“烘焙”出来了。

我已经检查过,据我所知,我没有在某个地方定义了可能会-d意外激活该标志的别名。

这是一个错误吗sort?(coreutils v8.32)。有没有办法强制它不按字典顺序排序,而是按严格的 ascii 值排序?

操作系统:Linux Mint 21.1(基于 ubuntu jammy,据我所知),以防相关

编辑:根据要求提供区域设置和 MVP

$ locale
LANG=en_GB.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC=en_GB.UTF-8
LC_TIME=en_GB.UTF-8
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY=en_GB.UTF-8
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER=en_GB.UTF-8
LC_NAME=en_GB.UTF-8
LC_ADDRESS=en_GB.UTF-8
LC_TELEPHONE=en_GB.UTF-8
LC_MEASUREMENT=en_GB.UTF-8
LC_IDENTIFICATION=en_GB.UTF-8
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

$ echo '
> !a
> ?b
>  c
> !f
>  e
> ?d' | sort 

!a
?b …
Run Code Online (Sandbox Code Playgroud)

bash sort coreutils

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

标签 统计

coreutils ×10

command-line ×3

rm ×2

bash ×1

binary ×1

bug-reporting ×1

compiling ×1

date ×1

gcc ×1

info ×1

make ×1

sort ×1

versions ×1