当前位置: 首页 > 面试题库 >

如何在xargs中使用别名命令?

澹台阳秋
2023-03-14
问题内容

我的.aliases中具有以下别名:

alias gi grep -i

并且我想在名称foo中包含字符串的所有文件中查找不区分大小写的内容bar

find -name \*bar\* | xargs gi foo

这是我得到的:

xargs: gi: No such file or directory

有什么方法可以在xargs中使用别名,还是必须使用完整版本:

   find -name \*bar\* | xargs grep -i foo

注意: 这是一个简单的示例。此外,gi我还有一些非常复杂的别名,无法轻易手动扩展。

编辑: 我用过tcsh,所以请指定答案是否特定于外壳。


问题答案:

别名是外壳特定的-
在这种情况下,很可能是bash特定的。要执行别名,您需要执行bash,但是别名仅针对交互式shell加载(更准确地说,.bashrc仅针对交互式shell读取)。

bash -i 运行一个交互式外壳程序(以及源.bashrc)。 bash -c cmd 运行 cmd

将它们放在一起: bash -ic cmd 在交互式shell中运行 cmd ,其中 cmd
可以是您的中定义的bash函数/别名.bashrc

find -name \*bar\* | xargs bash -ic gi foo

应该做你想做的。

编辑:我看到您已经将问题标记为“
tcsh”,因此bash特定的解决方案不适用。使用tcsh时,您不需要-i,因为除非您给出,否则它将显示为.tcshrc -f

尝试这个:

find -name \*bar\* | xargs tcsh -c gi foo

它适用于我的基本测试。



 类似资料:
  • 问题内容: 因此,我具有以下结构: 我运行了一个命令来调整它们的大小 现在我的目录看起来像这样 第一个问题是,我该如何重命名文件,以便仅拥有一个扩展名。不是两个。(基本上,我该如何清除最初的错误)? 第二个问题是,将来使用xargs,如何将模拟文件的扩展名更改为第二个命令? 问题答案: 我如何重命名文件,以便我只能拥有一个扩展名。 将来,使用xargs,如何将模拟文件的扩展名更改为第二个命令? 据

  • 问题内容: 我正在尝试从H2数据库表中获取一些值。执行我需要的查询是这样的: 其中“ creationDate”,“ paymentValue”,“ fxRate”是表“ payment”的列。CreationDate是一个时间戳,因此我只需要从中获取日期。当我尝试用Java编写它时 我得到了错误 我还尝试使用另一个名为GraphDto的对象,该对象的属性为datedate,value1和valu

  • 问题内容: 该文档仅提及嵌套类型,但尚不清楚它们是否可用作命名空间。我还没有发现任何有关命名空间的明确提及。 问题答案: 在苹果开发论坛中, SevenTenEleven 回答了: 命名空间不是按文件的;它们是基于目标的(基于“产品模块名称”构建设置)。因此,您最终将得到如下结果: 所有Swift声明都被认为是某个模块的一部分,因此即使您说“ ”(是的,它仍然存在),您也会得到Swift认为的“

  • 问题内容: 我正在尝试搜索文本和备注的多列,以查找某些我不想看到的特定短语和黑名单短语。 假设下表 前任。我想找到所有提到(在任何领域中)“苹果”但黑名单中的“苹果酱”的故事。 如何在where子句中使用别名?我找不到有关此主题的任何文档: 1)这种方法可行吗? 2)替代方法是否意味着我将在每次行迭代中执行多个字符串连接? 问题答案: 我不能在where子句中使用别名。 这种方法可行吗? 当然,将

  • 我有一个名为“cotacaoitensfranqueado”的表,我想用来命名它,我知道我可以这样做我在这个问题上看到了什么,但我想用我的模型来做。

  • 问题内容: PostgreSQL窗口函数的文档似乎暗示您可以在查询的多个位置使用相同的命名窗口。但是,我不知道如何创建命名窗口? 这是一个开玩笑的查询,我试图获取语法,但出现错误: 错误:窗口“ w”不存在 问题答案: 答案实际上在文档中: 条款 可选子句具有一般形式 这是一个例子