通过终端删除已被另一个命令选择的带有特殊字符的文件

通过终端删除已被另一个命令选择的带有特殊字符的文件

这是我的第一篇帖子,所以请慢慢来 :)

我正在创建一个 AppleScript,它运行 bash 命令来选择并删除指定文件夹组中最近修改的文件。文件名每次都会不同。

我见过如何在知道实际文件名的情况下删除带有特殊字符的文件,但在我的例子中,文件名是由 ls 发现的。遗憾的是,当我使用 rm 删除文件时,一切都乱了套,无法识别文件,因为文件名称中有问号和空格。有没有办法在变量外面添加引号,以便可以正确寻址?或者有更好的方法。我甚至不知道如何重命名文件。另外,我只想更改/删除一个文件,我无法重命名文件夹中的所有文件。

以下是其中一个文件名的示例。?+61 434 570 460? 于 2016-12-22 15.01.27.ichat

下面是我尝试运行的代码;rm -fr $(ls -t | head -n1)

谢谢大家的意见 :)

答案1

我最终解决了这个问题,我必须将引号放在引号中,即在命令中添加引号。

这是删除最新文件的有效命令,无论名称中是否有特殊字符或空格。

rm -f """$(ls -t | tail -1)"""

干杯。

相关内容