![如何列出没有 .txt 文件扩展名的文本文件?](https://linux22.com/image/830283/%E5%A6%82%E4%BD%95%E5%88%97%E5%87%BA%E6%B2%A1%E6%9C%89%20.txt%20%E6%96%87%E4%BB%B6%E6%89%A9%E5%B1%95%E5%90%8D%E7%9A%84%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%EF%BC%9F.png)
例如,我如何复制:
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"}
排除特定文件扩展名