首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux :组合"ls“和"cp”命令

Linux :组合"ls“和"cp”命令
EN

Stack Overflow用户
提问于 2014-01-11 17:57:58
回答 2查看 2.4K关注 0票数 2

命令

代码语言:javascript
复制
ls -l | egrep '^d'

列出CWD中的所有目录。

而这个命令

代码语言:javascript
复制
cp a.txt /folder 

将文件a.txt复制到名为“文件夹”的文件夹中

现在,我应该如何组合2命令,以便将文件a.txt复制到CWD中的所有文件夹。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-11 18:03:26

cp命令不包含多个目的地,但始终可以尝试:

代码语言:javascript
复制
for DEST in `command here` ; do cp a.txt "$DEST" ; done

backticks中的命令可以是在标准输出上生成目录列表的命令,但我怀疑ls -l | egrep '^d'是否是这样的命令。总之,你问题的标题是关于组合ls和cp命令,这是我的答案。要真正实现您想要做的事情,最好使用find

find . -maxdepth 1 -type d ! -name "." -exec cp a.txt {} \;这样的东西可能会做你真正想做的事情。find命令是一个特例,因为它有一个-exec选项,可以轻松地与其他命令组合。您也可以使用(但当目录很多时,另一个版本会失败):

代码语言:javascript
复制
for DEST in `find . -maxdepth 1 -type d ! -name "."` ; do cp a.txt "$DEST" ; done
票数 4
EN

Stack Overflow用户

发布于 2014-01-11 18:10:29

in scripts。使用通配符代替。

您必须遍历目标目录,因为cp一次复制到一个目标目录。

代码语言:javascript
复制
for d in */; do
  if ! [ -h "${d%/}" ]; then
    cp a.txt "$d"
  fi
done

模式*/匹配当前目录中的所有目录(除非它们的名称以.开头),还匹配指向目录的符号链接。${d%/}上的测试(没有最终/$d)排除了符号链接。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21065820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档