我不太确定该怎么做,但我需要为一个目录中的某些文件创建符号链接,并将这些符号链接放在另一个目录中。
例如,我想要链接当前目录bar1中名称中包含单词"foo“的所有文件,该目录没有扩展名".cc”,并将符号链接放在一个目录bar2中。
我想知道在LINUX bash中是否有单行命令可以实现这一点。
发布于 2012-06-05 05:01:50
假设您在一个包含目录bar1和bar2的目录中
find bar1 -name '*foo*' -not -type d -not -name '*.cc' -exec ln -s $PWD/'{}' bar2/ \;发布于 2012-06-05 05:04:09
试试这个:
cd bar1
find . -maxdepth 1 -name '*foo*' -not -name '*.cc' -exec echo ln -s $PWD/{} ../bar2 \;对演练感到满意后,从命令中删除echo并真正运行它。
发布于 2012-06-05 05:06:42
这很容易通过扩展的globbing来处理:
shopt -s extglob
cd bar2
ln -s ../bar1/foo!(*.cc) .如果您真的想在一行中完成所有操作,只需使用命令分隔符:
shopt -s extglob; cd bar2; ln -s ../bar1/foo!(*.cc) .这两个示例是相同的,但第一个更容易阅读。
https://stackoverflow.com/questions/10888105
复制相似问题