tcsh带别名的globbing

时间:2014-04-18 20:04:56

标签: shell alias tcsh glob

如何在tcsh中的别名中使用globbing?例如,假设我们想要一个别名,它将以给定字符串开头的所有文件移动到特定文件夹:

alias mv_to_trash 'mv !\:1* ~/trash'不会将所有以jk开头的文件移至垃圾箱:

mv_to_trash jk

产量

mv: No match.但是有两个文件jk1jk2应该匹配。

1 个答案:

答案 0 :(得分:0)

这不是一种安全的方法。请不要依赖别名来扩展通配符,因为这样做会违反最少惊讶的原则。如果一个不知道的用户会调用一个会出现意外情况的别名怎么办?

更好的是让别名采用任意数量的参数

alias mv_to_trash 'mv \!* ~/trash'

并通过提供显式通配符来调用它,如果需要:

mv_to_trash jk*

这更安全,更精确。它还提供了更大的控制和灵活性:如果愿意,您可以使用其他模式匹配运算符,而无需更改别名定义。