Find 命令列出仅由“数字”(0-9)组成的目录名称

sur*_*ale 0 directory find filenames

在特定路径中,我有几个目录(日期为文件名),例如:

  • 如果目录名称类似于 20180423 则应列出
  • 如果目录名称类似于 20180423-backup 或 20180423backup,则不应列出它。

Sté*_*las 5

你想在这里使用双重否定:

LC_ALL=C find . ! -name '*[!0-9]*' -type d
Run Code Online (Sandbox Code Playgroud)

即列出名称不包含非数字的目录类型的文件。

如果没有LC_ALL=Cfind包括 GNU 在内的一些实现find还可以列出名称包含在当前语言环境中不构成有效字符的字节序列的文件(例如répertoiremkdir $'r\xe9pertoire'使用 UTF-8 作为字符集的语言环境中以 iso8859-1 ( )编码的文件)。

使用zsh,您还可以执行以下操作:

print -rC1 -- **/<->(ND/)
Run Code Online (Sandbox Code Playgroud)