shell 获取文件夹下所有子文件夹下所有文件的名称,所有名称聚合去除,保存到一个txt文件中
时间: 2023-12-04 12:05:09 浏览: 38
可以使用 `find` 命令来查找指定文件夹下的所有子文件夹和文件,然后用 `awk` 命令将文件名提取出来,并使用 `sort` 命令和 `uniq` 命令将重复的文件名去除,最后将结果保存到一个txt文件中。
以下是具体的命令行操作:
```
find /path/to/folder -type f | awk -F/ '{print $NF}' | sort | uniq > filenames.txt
```
其中,`/path/to/folder` 是指要查找的文件夹路径,`-type f` 表示只查找文件,不包括文件夹,`-F/` 表示以 `/` 为分隔符,`$NF` 表示提取出每行最后一个字段,也就是文件名。
执行完以上命令后,当前目录下就会生成一个名为 `filenames.txt` 的文件,里面包含了所有文件夹下的文件名,且重复的文件名已经被去除。
相关问题
使用shell获取一个文件夹下所有文件夹的名字打印到一个txt文档中
可以使用以下命令获取一个文件夹下所有文件夹的名字并打印到一个txt文档中:
```
ls -d */ > folder_names.txt
```
其中,ls命令用于列出文件夹下的所有文件和文件夹,-d参数用于只列出文件夹,*/表示列出所有文件夹,>用于将结果输出到一个txt文档中。
shell获取文件夹下的所有文件
要获取一个文件夹下的所有文件,可以使用以下命令:
```
ls /path/to/folder
```
这将列出指定文件夹中的所有文件和子文件夹。如果您想要列出子文件夹中的所有文件,可以使用以下命令:
```
ls -R /path/to/folder
```
这将递归列出指定文件夹中的所有文件和子文件夹中的文件。如果您只想列出文件而不是子文件夹,则可以使用以下命令:
```
find /path/to/folder -type f
```
这将列出指定文件夹中的所有文件,但不包括子文件夹。如果您希望包括子文件夹中的所有文件,请使用以下命令:
```
find /path/to/folder -type f -print
```
这将递归列出指定文件夹中的所有文件和子文件夹中的文件。