UNIX 'ls' 命令排除不需要的文件
UNIX 'ls' command exclude unwanted files
当前目录有以下文件。
hello.log
hello.2019-12-23.1.log
hello.2019-12-23.2.log
hello.2019-12-23.3.log
hello.log.2019-12-22.log.gz
hello.log.2019-12-21.log.gz
abc.log
xyz.log
我希望我的 ls 命令 return 仅当前日志文件(不包括所有存档、旧日志文件)
预期输出低于
hello.log
abc.log
xyz.log
这在很大程度上取决于要忽略条目的条件。尽管如此,文件名通配表达式可用于限制使用 ls
命令调用的文件名选择的结果。这些操作不是很复杂(例如,与 regex
不同),因此只能使用简单的表达式。在原始问题的示例文件列表中,可以通过仅显示特定扩展名(例如 .log)
不以数字结尾(例如 [!0-9]
)
所以 ls
命令看起来像这样:
ls *[!0-9].log
这适用于显示的示例。但是,这取决于文件名列表的复杂性。
当前目录有以下文件。
hello.log
hello.2019-12-23.1.log
hello.2019-12-23.2.log
hello.2019-12-23.3.log
hello.log.2019-12-22.log.gz
hello.log.2019-12-21.log.gz
abc.log
xyz.log
我希望我的 ls 命令 return 仅当前日志文件(不包括所有存档、旧日志文件)
预期输出低于
hello.log
abc.log
xyz.log
这在很大程度上取决于要忽略条目的条件。尽管如此,文件名通配表达式可用于限制使用 ls
命令调用的文件名选择的结果。这些操作不是很复杂(例如,与 regex
不同),因此只能使用简单的表达式。在原始问题的示例文件列表中,可以通过仅显示特定扩展名(例如 .log)
不以数字结尾(例如 [!0-9]
)
所以 ls
命令看起来像这样:
ls *[!0-9].log
这适用于显示的示例。但是,这取决于文件名列表的复杂性。