假设我的桌面上有这些文件:
aaa.jpg
bbb.jpg
我想列出这两个 jpg 并将它们输出到 .txt 文件:
#!/bin/bash
cd ~/Desktop
ls -1 > all.txt
使用此代码all.txt
将具有以下内容:
aaa.jpg
bbb.jpg
all.txt
我只想要这两个jpg all.txt
。
答案1
您可以仅对 .jpg 文件使用 ls 过滤器
ls *.jpg > all.txt
答案2
感谢您的回复,但我想列出所有内容,而不仅仅是 .jpg。我意识到有一个简单的解决方案
ls * > all.txt
代替
ls > all.txt
有谁知道为什么添加通配符会阻止输出文件包含自身?
答案3
比 @ShayneManning 提出的解决方案更通用的解决方案:
ls | grep -v '^all.txt$' > all.txt
grep
用于按内容过滤行。该选项-v
反转过滤器。因此,all.txt
将从 的输出中排除ls
。所有其他名称将打印到all.txt
.