我在 AskUbuntu 和其他地方浏览过不少帖子,但听起来,它们都是关于删除隐藏文件的,而我试图:
从隐藏目录内的非隐藏目录中删除非隐藏文件。
我喜欢/home/admn/.cache/thumbnails/normal/
使用 Bash 脚本删除目录内的所有文件。
我创建的简单脚本:
sudo nano /usr/local/scripts/test.sh
#!/bin/bash
shopt -s dotglob
rm '/home/admn/.cache/thumbnails/normal/*'
shopt -u dotglob
注意:正如建议的那样,我尝试"
在脚本中使用双引号,但仍然出现相同的错误。
sudo chmod +x /usr/local/scripts/test.sh
我收到的错误:
rm: cannot remove '/home/admn/.cache/thumbnails/normal/*': No such file or directory
谢谢。
答案1
单引号和双引号都不允许扩展 glob *
- 需要在引号之外,即
rm '/home/admn/.cache/thumbnails/normal/'*
或者
rm "/home/admn/.cache/thumbnails/normal/"*
但是,由于您的字符串不包含任何 shell 特殊字符,因此您可以完全省略引号
rm /home/admn/.cache/thumbnails/normal/*