我想列出目录树,但我必须为它编写脚本,因为参数脚本应该将路径转到基目录。列表应该从这个基本目录开始。
输出应如下所示:
Directory: ./a
File: ./a/A
Directory: ./a/aa
File: ./a/aa/AA
Directory: ./a/ab
File: ./a/ab/AB
因此,我需要从基本目录中为此基本目录中的每个目录和文件打印路径。
已更新
运行脚本我应该在终端输入:“。\ test.sh / home / usr / Desktop / myDirectory”或“。\ test.sh myDirectory” - 因为我从桌面级别运行test.sh 。 现在脚本应该从/ home / usr / Dekstop / myDirectory“
的级别运行我在test.sh文件中有以下命令:
find . | sed -e "s/[^-][^\/]*\// |/g"
但它是命令,而不是shell代码并打印输出如下:
DIR: dir1
DIR: dir2
fileA
DIR: dir3
fileC
fileB
如何从基础目录打印基础目录中的每个目录或文件的路径?有人可以帮我解决一下吗?
答案 0 :(得分:0)
使用以下代码创建test.sh
。在这里,您将读取系统变量$ 1中的命令行参数,并为find命令提供参数。
#!/bin/bash #in which shell you want to execute this script
find $1 | sed -e "s/[^-][^\/]*\// |/g"
现在它将如何运作: -
./test.sh /home/usr/Dekstop/myDirectory #you execute this command
此处命令行参数将分配到$ 1。不止一个参数你可以使用1美元到9美元,之后你必须使用shift命令。 (您将在线获得更多详细信息。)
所以你现在的命令就是: -
#!/bin/bash #in which shell you want to execute this script
find /home/usr/Dekstop/myDirectory | sed -e "s/[^-][^\/]*\// |/g"
希望这会对你有所帮助。