如何在文件夹层次结构(Linux)中找到所有不同的文件扩展名?
虽然有很多方法可以使用不同的实用程序命令在 Linux 中找到特定文件的扩展名,但如果我们需要在文件夹层次结构中找到所有不同的文件扩展名,我们首先需要了解find和sed命令的用法这些命令将用于打印文件夹或文件夹层次结构中的所有不同文件扩展名。
我们必须注意的两个 Linux 实用程序命令是 -
find - 用于定位特定文件或目录
sed - 流编辑器的缩写,用于执行搜索、编辑和替换等功能。
当我们谈论单个文件夹时,我们甚至不需要 find 命令,因为我们可以通过迭代所有文件然后也使用 sort 命令来简单地做到这一点。
假设我有一个名为 dir1 的目录,我想知道该文件夹中不同的文件扩展名。
为此,我将在该目录中键入如下所示的命令。
命令
for file in *.*; do printf "%s\n" "${file##*.}"; done | sort -u输出结果
immukul@192 dir1 % for file in *.*; do printf "%s\n" "${file##*.}"; done | sort -uapp
c
dmg
doc
docx
epub
go
h
htm
jnlp
jpeg
jpg
json
mp4
o
odt
png
srt
torrent
txt
webm
xlsx
zip
如您所见,上述示例中列出的所有扩展都是不同的。现在,如果我们想在文件层次结构中列出所有不同的文件扩展名,那么我们需要向上述命令添加递归。
命令
find . -type f | sed -e 's/.*\.//' | sed -e 's/.*\///' | 排序 -u输出结果
immukul@192 dir1 % find . -type f | sed -e 's/.*\.//' | sed -e 's/.*\///' | 排序 -uapp
c
dmg
bz2
callgrind
case-hosts
cc
cfg
cgi
comments
conf
config
contention
cov
cpu
crash
crt
css
csv
dat
debug_rnglists
demangle-expected
dep
description
以上是 如何在文件夹层次结构(Linux)中找到所有不同的文件扩展名? 的全部内容, 来源链接: utcz.com/z/322854.html