linux - 这个命令 ls 的作用是什么。 | xargs -i -t cp ./{} $1

标签 linux bash shell posix xargs

<分区>

我是 bash 脚本的新手。在学习高级 bash 脚本时,我遇到了这个命令。我不明白命令是如何工作的以及大括号的用途是什么。提前致谢。

最佳答案

你的命令:

ls . | xargs -i -t cp ./{} $1

可以分为以下几个部分:

  ls . 

列出当前目录(这将列出除隐藏文件之外的所有文件/目录)

| xargs -i -t cp ./{} $1

基本上,xargs 会破坏管道输出(在本例中为 ls),并将列表中的每个元素作为以下命令(在本例中为 cp)的输入提供。 -t 选项是在 stderr 中显示 xargs 实际执行的内容。 -i 用于字符串替换。在这种情况下,由于没有提供任何内容,它将用输入替换 {}。 $1 是您的文件将被复制到的目的地的名称(我想在这种情况下它应该是命令有意义的目录,否则您将把所有文件复制到同一个目的地)。

例如,假设您有一个目录,其中包含名为 a、b、c 的文件。当您运行此命令时,它将执行以下操作:

cp ./a $1
cp ./b $1
cp ./c $1

注意:

-i 选项已弃用,应改用 -I(大写 i)

关于linux - 这个命令 ls 的作用是什么。 | xargs -i -t cp ./{} $1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33141207/

相关文章:

shell - 从 Solaris KornShell 运行 .ksh 脚本

mysql - bash 脚本中的 mysql 查询仅返回一个字符串

bash - 删除第一对字符之间的多行文本

linux - 比较字符串时出现问题 (BASH)

bash - 使用 shell 脚本将零填充为二进制数

node.js - 你能从 expressjs 应用程序调用 shell 脚本吗?

linux - 直接修改未压缩的 tar 文件

c - 无效指针类型转换为 pid_t 不正确

c - 在没有本地硬盘的远程服务器上保存图像(jpg)

c - pthread 程序中例程的额外执行时间花费了什么?