如何在文件夹层次结构(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 -u

app

c

dmg

doc

docx

epub

go

h

htm

jnlp

jpeg

jpg

json

mp4

o

odt

pdf

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/.*\///' | 排序 -u

app

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

回到顶部