les*_*ese 5 bash directory shell-script
我正在尝试自动部署经常更新的开发中的 web 应用程序。webapp 以 zip 文件的形式出现,名称未知,目录结构如下:
unknown_name.zip
??? unknown_folder_name
???all_the_application_files
Run Code Online (Sandbox Code Playgroud)
我需要一个 bash 脚本来:
重要提示:在 tmp 目录中将只有一个目录,我想进入的目录。我当前的 bash 脚本:
unknown_name.zip
??? unknown_folder_name
???all_the_application_files
Run Code Online (Sandbox Code Playgroud)
cel*_*chk 15
如果您确定当前目录中只有一个目录并且没有其他目录(没有其他文件夹和其他文件),您可以输入该目录
cd *
Run Code Online (Sandbox Code Playgroud)
如果您知道只有一个目录,但当前目录中可能存在非目录和非符号链接到目录的文件,则可以使用
cd */.
Run Code Online (Sandbox Code Playgroud)
仅选择目录。
单*是由外壳扩展到所有的文件名(包括子目录)在当前目录列表(不包括隐藏文件,尤其是目录.和..它总是在那里)。如果当前目录中只有要进入的子目录,这将扩展为
cd unknown_folder_name
Run Code Online (Sandbox Code Playgroud)
从而做你想做的事。
诀窍*/.在于,这会扩展到.任何子目录中的“自目录”(命名为),这当然是子目录本身。由于文件名永远不能包含/,并且假设只有一个目录,因此它扩展到的唯一名称将是unknown_folder_name/.,这当然与unknown_folder_name.