我们如何find特定types的文件,即嵌套目录中的doc pdf文件。
命令我试过了:
$ ls -R | grep .doc
但是如果有一个像alok.doc.txt
这样的文件名,这个命令也会显示出来,这显然不是我想要的。 我应该使用什么命令呢?
如果你更喜欢“ls”和“grep”,你可以在grep命令中用正则表达式来做你想做的事情(结尾'$'字符表示.doc必须在行尾,这样会排除“file.doc.txt”):
ls -R |grep "\.doc$"
有关在man中使用正则表达式的更多信息。
ls
命令的输出主要是供人读取的。 对于高级查询自动化处理,您应该使用更强大的find
命令:
find /path -type f \( -iname "*.doc" -o -iname "*.pdf" \)
就好像你有bash 4.0 ++
#!/bin/bash shopt -s globstar shopt -s nullglob for file in **/*.{pdf,doc} do echo "$file" done
一些可以使用的其他方法:
echo *.{pdf,docx,jpeg}
stat -c %n * | grep 'pdf\|docx\|jpeg'
同样,如果你喜欢使用通配符*
(不像正则表达式的建议),你可以使用ls
和-l
两个-l
来列出每行一个文件(比如grep)和-R
标志。 然后你可以用*.doc
IE来指定要搜索的文件
ls -l -R *.doc
或者如果你想要它在较少的行上列出文件。
ls -R *.doc