【问题标题】:Lab for my Alt OS class and I'm unsure of this Linux Command我的 Alt OS 课程的实验室,我不确定这个 Linux 命令
【发布时间】:2021-03-08 06:19:09
【问题描述】:

我目前正在为我的 Alt OS 课程做一个实验室,教授给出了多个命令,你必须解释它们的功能。我坚持的是

find /home/ -user bob | xargs -d “\n” chown bill:bill 

我了解我们正在查找 bob 的主文件夹中的任何项目,并将其通过管道传输到 xargs 以分隔某些内容。我只是不确定“\n”部分在做什么。最后,我知道我们会采用这些结果并更改账单权限。

【问题讨论】:

  • 你读过例如man7.org/linux/man-pages/man1/xargs.1.html?这会告诉你-d 的用途。
  • 我查看了手册页和 -d 部分,但我不明白它的含义。是否只是获取在该主文件夹中找到的任何内容并终止任何具有“\n”的内容并更改已终止的内容的所有权?

标签: linux xargs


【解决方案1】:

来自man xargs

--delimiter=delim, -d delim

输入项以指定字符结束。指定的分隔符可以是单个字符,C 风格的字符转义,例如 作为 \n,或八进制或十六进制转义码。八进制和十六进制转义码被理解为用于 printf 命令。多字节 不支持字符。在处理输入时,引号和反斜杠并不特殊;输入中的每个字符都被点亮 通常。 -d 选项禁用任何文件结尾字符串,它被视为任何其他参数。输入时可以使用此选项 由简单的换行符分隔的项目组成,尽管将程序设计为在可能的地方使用 --null 几乎总是更好 嗯。

C 中的\n 转义序列表示换行符。 -d '\n' 通常用于 xargs 以用换行符分隔项目 - 每行读取一项。报价处理存在显着差异:

$ echo "quote'not terminated" | xargs
xargs: unmatched single quote; by default quotes are special to xargs unless you use the -0 option

$ echo "quote'not terminated" | xargs -d'\n'
quote'not terminated

cppreference escape sequences 上,您可能会发现 C 转义序列。

【讨论】:

  • 谢谢!这些示例非常有帮助,以及“\n”通常用于什么!
猜你喜欢
  • 2021-08-24
  • 1970-01-01
  • 2010-12-27
  • 1970-01-01
  • 2023-03-10
  • 2017-11-01
  • 2017-10-28
  • 1970-01-01
  • 2017-01-18
相关资源
最近更新 更多