linux - 为什么它不管道到 cd 命令?
问题描述
我读到如果你使用 | 命令然后它将第一个命令的输出通过管道传输到第二个命令的输入,那么它为什么会起作用?
谢谢!
find -size 1033c | cd
解决方案
该cd
命令不读取标准输入,因此您通过管道传递给它的任何内容都将被忽略。
最接近您的命令(字面上)试图做的将是:
cd `find -size 1033c`
...除了您可能会“cd”到一个文件(这将失败!)或找不到具有该大小的目录...导致您(无声地)cd-ing到用户的主目录。
而且您的find
命令也缺少要搜索的目录!
根据您的评论,您正在尝试访问包含具有给定大小的文件cd
的目录。如果我们可以假设只有一个这样的文件,那么以下应该可以工作:
FILE=`find . -size 1033c -type f`
cd `dirname $FILE`
如果可能有多个匹配项,那么您需要执行类似的操作...应该 cd 到具有第一个匹配文件的目录。
FILE=`find . -size 1033c -type f -print -quit`
cd `dirname $FILE`
推荐阅读
- mfc - 为什么在按下 Alt 之前我的 AfxMessageBox 是不可见/隐藏的?
- javascript - 将几个记忆函数打包到一个对象中的简洁方法
- quarkus - 是否可以使用 quarkus-redis-client 订阅 redis 中的主题?
- bash - 将单个随机字符添加到文件夹中所有文件的 Bash 脚本
- julia - 在 for 循环 Julia 中重复使用的多个输出
- vue.js - 如何在 vue.js 中将“select”类型的 FormulateInput 与 v-for 一起使用?
- python - selenium twitter登录没有新设备通知
- unity3d - Unity:检测粒子系统中的粒子轻拍
- c++ - cuda 中 static_cast<>、(int) 和 __float2int_rn() 之间的区别
- json - 使用jq的条件查询