首页 > 解决方案 > 在触摸字符串中转义感叹号

问题描述

每次我下载 youtube 文件(例如abc.mp4)时,我都会立即通过在 bash 终端中手动执行以下命令来更改其日期/时间戳touch -d "$(date)" "abc.mp4"

这可以正常工作,除非文件具有嵌入的感叹号(例如ab!c.mp4)。然后,以下命令出现故障:touch -d "$(date)" "ab!c.mp4".

实验一下,我试过了::touch -d "$(date)" "ab\!c.mp4"不高兴 touch命令创建了一个新的空文件,名称为ab\!c.mp4.

我的kludgy解决方案是手动重命名 youtube 文件,从其名称中删除感叹号,然后执行touch命令。

有没有更优雅的方法可以让感叹号保留在文件名中?

标签: stringbashescaping

解决方案


尝试set +H在您的touch命令之前调用或仅使用单引号:touch -d "$(date)" 'ab!c.mp4'.


推荐阅读