[!_]和ls -lt * xyz * 2的含义> DIR

时间:2014-02-13 06:37:39

标签: unix ksh

我有一个代码,其中包含以下行:

old_fil=`ls -lt [!_]*xyz* 2> /dev/null | grep -v ^total | tail -1 | awk '{print $9}'`

您能解释[!_]2ls -lt的含义吗?

1 个答案:

答案 0 :(得分:2)

[..]匹配内部列出的任何字符。

但如果第一个字符是^!,则它匹配任何不在指定字符中的字符。 [!_]匹配不是_的字符。

以下命令列出名称不以_开头的文件(它应与字符匹配)并包含xyz

ls [!_]*xyz*

2中的

2>表示文件描述符。 (0 =标准输入,1 =标准输出,2 =标准误差)。

通过附加2> /dev/null,该命令生成的错误消息将被丢弃。