专栏首页Linyb极客之路Linux基础之cd无法进入xargs管道输出的目录问题解决方法

Linux基础之cd无法进入xargs管道输出的目录问题解决方法

前言

今天在利用jenkins将项目部署到远程服务器,里面有个步骤涉及到切换目录,执行部署脚本的命令,原本思路是利用xargs和cd配合进行目录切换,执行的shell命令如下

ls -a | sort -r | head -n 1 | xargs -I {} basename {} .zip | xargs cd

可惜理想很美好,现实很骨感。后面百度一些资料,大部分的资料和如下的链接里面表述的内容基本上一样,链接如下

https://www.jb51.net/LINUXjishu/225995.html

这个链接里面有解释了为啥cd无法进入xargs管道输出的目录的原因,并提供了对应的解决方案,然后我怀着兴奋的心情,以为拿到了仙丹妙药,就屁颠屁颠试了下去,果然真的没啥卵用。

为啥cd命令在管道符中不起作用

百度来的答案是xargs牵涉写管道,而cd是内部命令,所以不起作用。答案是这样吗,这样吗,可能以前是,但真正的原因是cd是通过终端的命令行读取数据的,不接受标准输入,而xargs管道命令右边必须能够接收标准输入。。。因此cd在xargs中不起作用,这不是很正常吗

如何使cd能够切换到我们想要的目录?

1.cd 使用反单引号 '命令'

[root@os4 1203]# cd 'ls -a | sort -r | head -n 1 | xargs -I {} basename {} .zip'
-bash: cd: ls -a | sort -r | head -n 1 | xargs -I {} basename {} .zip: 没有那个文件或目录

额,貌似没啥用

2、cd $(命令)

[root@os4 1203]# cd $(ls -a | sort -r | head -n 1 | xargs -I {} basename {} .zip)
[root@os4 Muse-Monitor-1.0-SNAPSHOT-20181204-1416]#

好,成功切换

本文分享自微信公众号 - Linyb极客之路(gh_c420b2cf6b47)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 在Linux下使用gcc编译mesa文件报undefined reference to symbol 'sin@@GLIBC_2.2.5和DSO missing from command line两个

    在Ubuntu下安装好mesa所需的库文件,将目标文件从github上克隆下来之后编译。

    Zoctopus
  • linux每日命令(10):touch命令

    如果加入 -c 参数,当目标文件不存在时,不会创建新文件,如果目标文件存在,则会修改文件时间属性为当前系统时间

    用户1214487
  • Linux如何实现截图的快捷键

    关于linux的截图功能一直觉得没有比较好用的,不过也能凑合使用,不能于QQ等截图功能相提并论。 下面说说如何设置linux下的截图快捷键,个人使用的是Ubun...

    付威
  • Linux命令(46)——read命令

    read命令是Shell内建命令,用于从标准输入或-u选项指定的文件描述符中读取单行,并将读取的单行根据IFS变量分割成多个字段,并将分割后的字段分别赋值给指定...

    Dabelv
  • 什么是Photon?

    Photon就是以前SmartMesh生态的SmartRaiden,Photon network是Spectrum的链下扩展解决方案,能够实现即时、低费用和可扩...

    rectinajh
  • Linux用户抢占和内核抢占详解(概念, 实现和触发时机)--Linux进程的管理与调度(二十)

    多任务系统中, 内核负责管理各个任务, 或者说为每个任务分配CPU时间, 并且负责任务之间的通讯.

    233333
  • Linux进程调度器的设计--Linux进程的管理与调度(十七)

    调度器面对的情形就是这样, 其任务是在程序之间共享CPU时间, 创造并行执行的错觉, 该任务分为两个不同的部分, 其中一个涉及调度策略, 另外一个涉及上下文切换...

    233333
  • linux每日命令(9):cp命令

    在没有带-a参数时,两个文件的时间是不一样的。在带了-a参数时,两个文件的时间是一致的。

    用户1214487
  • Linux进程核心调度器之主调度器schedule--Linux进程的管理与调度(十九)

    在内核中的许多地方, 如果要将CPU分配给与当前活动进程不同的另一个进程, 都会直接调用主调度器函数schedule, 从系统调用返回后, 内核也会检查当前进程...

    233333
  • Linux或者Mac环境安装Photon network

    官方安装文档: https://photonnetwork.readthedocs.io/en/latest/installation_guide/

    rectinajh

扫码关注云+社区

领取腾讯云代金券