shell获取目录下所有文件名,并存到变量里,用逗号隔开
时间: 2024-02-05 12:04:32 浏览: 32
可以使用以下命令来获取目录下的所有文件名,并将它们存储到一个变量中,用逗号隔开:
```bash
files=$(ls /path/to/directory/* | tr '\n' ',' | sed 's/,$//')
```
这个命令使用`ls`命令来获取目录下的所有文件名,并使用`tr`命令将文件名之间的换行符替换为逗号。然后使用`sed`命令删除最后一个逗号,以便变量中不包含多余的逗号。最后,将所有文件名赋值给`files`变量。
请注意,这个命令假设目录下没有子目录。如果要包括子目录中的文件名,请使用`find`命令代替`ls`命令:
```bash
files=$(find /path/to/directory -type f -printf '%f,' | sed 's/,$//')
```
这个命令使用`find`命令来查找目录下的所有文件,并使用`-printf`选项来打印文件名,使用逗号分隔。然后使用`sed`命令删除最后一个逗号,以便变量中不包含多余的逗号。最后,将所有文件名赋值给`files`变量。
相关问题
shell 获取某个目录下所有文件名
可以使用命令 `ls` 来获取某个目录下所有文件名,具体命令如下:
```shell
ls /path/to/directory
```
其中 `/path/to/directory` 是目标目录的路径,执行该命令后会输出该目录下所有文件和子目录的名称。如果需要将输出结果保存到文件中,可以使用重定向符号 `>`,例如:
```shell
ls /path/to/directory > filelist.txt
```
执行该命令后,会将目录下所有文件和子目录的名称保存到名为 `filelist.txt` 的文件中。
使用shell获取指定路径下的所有文件名
你可以使用以下命令来获取指定路径下的所有文件名:
```
ls /path/to/directory/
```
如果你希望所有的输出信息保存在文件中,你可以使用以下命令:
```
ls /path/to/directory/ > filename.txt
```
这将把所有的文件名输出到一个叫做 filename.txt 的文件中。如果你希望输出的文件名中包含子目录中的文件名,你可以加上 -R 参数,例如:
```
ls -R /path/to/directory/
```
相关推荐
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)