我刚刚开始使用 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
--无论什么最适合您:printf
ls
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
也许我来晚了,但问题仍然存在,我希望它对你有用。