相关疑难解决方法(0)

ls 没有 --zero 或 -0 选项是否有原因

这个问题是由关于ls'-1选项的问题以及人们反复提出问题和答案的倾向引起的,包括处理ls.

输出的这种重用ls似乎是可以理解的,例如:如果您知道如何对文件列表进行排序,ls那么您可能希望以这种方式使用输出作为其他内容的输入。

如果这些问答不包含对由行为良好的文件名(没有空格和换行符之类的特殊字符)组成的文件名列表的引用,则经常有人评论它们,指出命令序列在出现时不起作用的危险是带有换行符、空格等的文件。

find,sort和其他实用程序解决了将“困难”文件名传达给的问题,例如,xargs通过使用一个选项将文件名与 NUL 字符/字节分开,这不是文件名中的有效字符(除了/?之外的唯一一个) Unix/Linux 文件系统。

我查看了手册页ls和输出ls --help(列出了更多选项),但找不到ls(from coreutils) 有一个选项来指定 NUL 分隔的输出。它确实有一个-1选项可以解释为“用换行符分隔的输出文件名”)

问:是否有技术或哲学原因为什么ls没有“输出由 NUL 分隔的文件名”的--zero或-0选项?

如果您执行的操作仅输出文件名(而不使用 eg -l),则可能有意义:

ls -rt -0 | xargs -r0 …
Run Code Online (Sandbox Code Playgroud)

我可能会遗漏一些为什么这不起作用的东西,或者我忽略了这个例子的替代方案,而且不是更复杂和/或模糊。


附录:

这样做ls -lrt -0可能没有多大意义,但在以同样的方式find . -ls -print0不对,所以这不是一个理由不提供-0/ -z …

command-line ls shell

41
推荐指数
2
解决办法
8549
查看次数

如何删除shell中由空格分隔的两个单词的文件?

我hello world在我的主目录中创建了一个文本文件。通过 shell,我试图用rm命令删除它。但是,当我执行rm hello worldshell 时,它认为我正在尝试删除两个单独的文件,一个名为“hello”,另一个名为“world”。我该如何正确地做到这一点?

shell rm

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

如何删除名称中包含空格和引号的文件?

1 '2 3' 4 5 在Linux下如何删除一个名为的文件?我用过的方法都没有效果。

linux shell bash command

-1
推荐指数
1
解决办法
1101
查看次数

标签 统计

shell ×3

bash ×1

command ×1

command-line ×1

linux ×1

ls ×1

rm ×1