【问题标题】:Find file and cd into it找到文件并 cd 进去
【发布时间】:2023-01-11 02:41:18
【问题描述】:

我试图找到多个文件,然后在第一个匹配后退出,然后 cd 进入这个匹配,我尝试过:

find `pwd` -iname 'tensorflow' -type d -exec echo {} \; -quit | xargs -I{} cd {}

但是,这没有任何作用,也不会进入该目录。

【问题讨论】:

  • 没有打印错误信息?您如何确定 chdir 是否没有发生?
  • @Jetchisel 没有打印出来,我检查了pwd,我仍然在同一个目录中
  • 所以期望是在脚本完成后让你进入不同的目录?

标签: bash


【解决方案1】:

没有/usr/bin/cd,它不是可执行文件。您必须在当前 shell 中运行它,而不是作为管道的一部分在子 shell 中运行。

不要使用反引号。更喜欢$(...)

find pwd?只是find .,你已经在密码。

-exec echo {} ;?只是-print它。

dir=$(find . -iname 'tensorflow' -type d -print -quit)
cd "$dir"

【讨论】:

  • 我之前没有使用过变量,find pwd 是为了让我获得完整路径。你是说这不能在一行中完成吗?
  • 你可以在一行中做任何事情。 dir=$(...); cd "$dir"cd "$(...)"
  • 这是一个巧妙的技巧!我不知道这个,谢谢
  • 这非常有效!我已经用我的代码尝试过,只是因为我有其他想法。
猜你喜欢
  • 1970-01-01
  • 2020-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-26
  • 1970-01-01
  • 2018-10-04
相关资源
最近更新 更多