gpt4 book ai didi

linux - 编写脚本,为每个可写的普通类型文件制作编号列表

转载 作者:太空宇宙 更新时间:2023-11-04 11:49:06 25 4
gpt4 key购买 nike

我需要制作某种 hdguard 脚本。我被卡住了,因为我必须为所有可写的普通类型文件(没有链接目录等)制作一个编号列表。列表必须仅包含文件的名称和大小。然后我必须按数字选择要删除的文件。

我尝试了各种ls函数和find函数,但没有一种让我满意。

ls -Ss1pq --block-size=1

是我能得到的最接近的,但它不显示子目录中的文件和显示目录(必须只显示可写文件)。

期望的输出:

1. [size] [filename]
2. [size2] [filename2]
...

在我选择例如“1”之后,脚本必须生成包含每个所选文件路径列表的 txt 文件。

我知道了

find /homee -type f -not -path '/\.*' |sort -r -n -k7

越来越好

find /homee -type f - ls -not -path '/\.*' -exec du -hs {} + |sort -r -n -k7

但是如何只显示名称而不显示路径?

我也可以去

find /homee -type f -not -path '/\.*' -exec du -hs {} + |sort -r -n -k7 |sed 's/.*\///' | nl

但现在没有文件大小我该怎么办?

最佳答案

将行号输入文件的一种非常简单的方法是在空字符串上使用 grep -n,如您在此处所见:

Prompt> cat testtttt.txt
First line
Second line
Third line
Prompt> grep -n "" testtttt.txt
1:First line
2:Second line
3:Third line

-n 添加找到条目的行号,并通过搜索一个空字符串(您可以在每一行中找到它),您会得到一种行号。

关于linux - 编写脚本,为每个可写的普通类型文件制作编号列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56625379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com