给定文件的路径,请说:/home/user1/archive.zip
有人能告诉我如何在不使用外部二进制文件的情况下删除字符串archive.zip?
我知道:
${Path2File##*/}
Run Code Online (Sandbox Code Playgroud)
可以给我文件名,但我需要这个文件夹的路径.
我们也欢迎使用通配符理解或解释指南.
做
"${Path2File%\/*}"
Run Code Online (Sandbox Code Playgroud)
或使用外部二进制文件
dirname "$Path2File" # Not desirable as you've mentioned already
Run Code Online (Sandbox Code Playgroud)
笔记:
${parameter%word},单词被扩展为生成模式,就像在文件名扩展中一样.如果模式匹配参数的扩展值的尾部,则扩展的结果是删除了最短匹配模式的参数的值./shell参数扩展具有特殊意义,我们只是将其转义即\/.其目的是匹配即的文件名前缀
/example.zip中/path/to/example.zip并将其删除.参考:
Shell [参数扩展]