是否可以使用“ls -l *”添加例外

是否可以使用“ls -l *”添加例外

是否可以这样做:ls -l *打印所有目录的内容。并添加例外,例如,test.cpp 为了打印除 之外的所有文件test.cpp

答案1

如果已启用,则可以使用 glob 来完成extglob。您可以使用以下命令启用它:

shopt -s extglob

你可以像这样使用它:

ls -l !(test.cpp)

它也可以用于其他用途:

ls -l !(*.jpg) # list all files that don't have .jpg extensions

由于这是一个 shell glob,因此它也可以与其他命令一起使用。但是,一个副作用是它会导致任何子目录被明确列出,这意味着也会ls列出它们。但是,这可以轻松处理:

ls -ld !(test.cpp)

答案2

实现此目的的经典(天真的?)方法是

  ls -l * | grep -v test.cpp

然而,正如 Lamar 所评论的,GNUls有忽略某些文件名的选项

  ls -l -I test.cpp *

注意ls -l *列出当前目录中的文件以及第一级子目录中的文件。你可能指的是ls -l没有*

相关内容