假设,我有一个目录名称为"/ sites/all/modules"的字符串.我想删除它的最后一个组件,生成:"/ sites/all".我试过,创建一个函数,但它返回:"/ sites/all/modules".
(defun remove-last-dir (dir)
(replace-regexp-in-string "(.*)/.+" "\1" dir))
(print (remove-last-dir "/sites/all/modules"))
Run Code Online (Sandbox Code Playgroud)
ELISP> (directory-file-name (file-name-directory "/sites/all/modules"))
"/sites/all"
Run Code Online (Sandbox Code Playgroud)
file-name-directory获取给定路径的目录组件.Emacs将结束的路径视为/目录,因此返回值将具有尾随/
directory-file-name返回路径的非目录版本(这意味着它会/从值中删除尾随,如果有的话).
请注意,如果您的原始参数是(或可能),/sites/all/modules/那么您首先要调用directory-file-name它(否则file-name-directory只返回原始值,因为目录路径的"目录组件"本身).
| 归档时间: |
|
| 查看次数: |
702 次 |
| 最近记录: |