我有一个代码,其中包括以下行:
old_fil=`ls -lt [!_]*xyz* 2> /dev/null | grep -v ^total | tail -1 | awk '{print $9}'`
你能解释一下[!_]
和2
在ls -lt
中的含义吗?
[..]
匹配其中列出的任何字符。
但是如果第一个字符是 ^
或 !
,它匹配不在指定字符中的任何字符。 [!_]
匹配未_
的字符。
以下命令列出了名称不以 _
开头的文件(它应该与 chracter 匹配)并包含 xyz
:
ls [!_]*xyz*
2
in 2>
表示文件描述符。(0 = 标准输入,1 = 标准输出,2 = 标准误差)。
通过追加 2> /dev/null
,命令生成的错误消息将被丢弃。