如何使用 bash 脚本列出文件夹中的文件

如何使用 bash 脚本列出文件夹中的文件

我刚刚开始使用 bash 脚本,我试图编写一个简单的脚本,使用 bash 脚本列出具有特定扩展名的所有文件。我主要用 Python 或 Matlab 编写代码,所以我非常习惯设置文件夹的地址,并使用 cd 函数更改该文件夹的路径并获取该文件夹中的文件列表。我尝试使用 bash 执行此操作,但我没有做错什么。例如,我尝试使用以下地址列出文件夹中的所有子文件夹"/home/user012/Desktop/folder2Start"

到目前为止我已经尝试过

cd "/home/user012/Desktop/folder2Start"

当我从终端运行它时,它并没有做太多的事情。

我该如何进入其中并列出其文件夹?

任何帮助将不胜感激..

答案1

这是 shell 通配符(路径名扩展)的典型用例:

/home/user012/Desktop/folder2Start/*/

这里我使用了*/匹配*下的任何文件()/home/user012/Desktop/folder2Start/,也就是目录(尾随/)。

如果您想要稍后对其进行操作,最好将扩展的结果放在一个数组中(工作方式与 Python 类似list,两者也都是从 0 开始的):

directories=( /home/user012/Desktop/folder2Start/*/ )

然后您可以使用通常的数组操作运算符引用该数组及其元素。

另一方面,如果您想要列表,请使用// echo--无论什么最适合您:printfls

printf '%s\n' /home/user012/Desktop/folder2Start/*/
echo /home/user012/Desktop/folder2Start/*/
ls -ld /home/user012/Desktop/folder2Start/*/

对于任何嵌入换行符的目录名称,请留意尾随/作为名称结束标记。

答案2

你应该使用类似的东西:

ls -l -d /home/user012/Desktop/folder2Start/*/
  • */查找目录
  • -d表示不要打印这些目录的内容。

答案3

您可以使用以下命令列出“folder2Start”文件:

ls -la /home/user012/Desktop/folder2Start

也许我来晚了,但问题仍然存在,我希望它对你有用。

相关内容