如何列出没有 .txt 文件扩展名的文本文件?

如何列出没有 .txt 文件扩展名的文本文件?

例如,我如何复制:

ls *.txt

当我的文本文件缺少.txt结尾时,并且扩展名与许多其他类型的文件相同?

或者,是否可以专门列出没有文件扩展名的文件?

答案1

要匹配根本没有扩展名的文件,可以使用命令

ls | grep -v '\.'

要匹配没有.txt扩展名的文件,可以使用命令

ls | grep -v '\.txt'

这会将当前目录中的文件列表传递给grep,后者将删除所有包含.(或.txt对于第二个命令)的文件名。

答案2

ls -ignore="PATTERN"可以从 ls 结果中排除文件。

例如ls --ignore="*.txt"忽略txt文件。

答案3

只需否定你的模式(注意:shopt -s extglob是必需的)。

显示所有不带扩展名的文件:

ls !(*.*)

要显示非txt文件,请尝试:

ls !(*.txt)

答案4

我倾向于避免使用 grep 进行简单的列表操作。

为了避免使用grep

我建议使用ls !(*.*)查找没有文件扩展名的文件,并且

ls -I "*.gz" -I "*.tz"或者ls --ignore={"*.jpg","*.png","*.bmp"}

排除特定文件扩展名

相关内容