在 pythonanywhere 的 bash 中,我试图删除该文件:
rm /home/olb/Email Thu, 19 Mar 2020 18:49:16 +0000 =?UTF-8?Q?Update_from_GOV.UK_=E2=80=93_Coronavirus_(COV?= =?UTF-8?Q?ID-19)_guidance_for_the_charity_sector?=
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
bash: syntax error near unexpected token `(‘
Run Code Online (Sandbox Code Playgroud)
我试图逃避(通过:
rm /home/olb/Email Thu, 19 Mar 2020 18:49:16 +0000 =?UTF-8?Q?Update_from_GOV.UK_=E2=80=93_Coronavirus_\(COV?= =?UTF-8?Q?ID-19\)_guidance_for_the_charity_sector?=
Run Code Online (Sandbox Code Playgroud)
rm /home/olb/ \Email Thu, 19 Mar 2020 18:49:16 +0000 =?UTF-8?Q?Update_from_GOV.UK_=E2=80=93_Coronavirus_\(COV?= =?UTF-8?Q?ID-19\)_guidance_for_the_charity_sector?=
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
Kus*_*nda 13
单引号名称。这是必需的,因为名称不仅包含(空格和其他字符,如果不加引号,shell 会解释这些字符。shell 会在未加引号的空格上拆分名称,并将每个生成的单词视为要删除的单独文件名模式(您在收到的错误消息中看到了这一点),并且这些?字符是通配符,可能与现有的单个字符匹配文件名(不太可能,但仍然)。
rm -i ~olb/'Email Thu, 19 Mar 2020 18:49:16 +0000 =?UTF-8?Q?Update_from_GOV.UK_=E2=80=93_Coronavirus_(COV?= =?UTF-8?Q?ID-19)_guidance_for_the_charity_sector?='
Run Code Online (Sandbox Code Playgroud)
或者,使用与文件名唯一匹配的文件名通配模式,
rm -i ~olb/Email*COV*guidance_for_the_charity_sector*
Run Code Online (Sandbox Code Playgroud)
请注意,您需要确保这仅与您有兴趣删除的一个文件匹配。您可以通过用或替换rm上面的命令来检查这一点,并检查修改后的命令的结果。printf '%s\n'echo
我还使用rm -i这里为您提供每次删除的交互式提示。
您可以使用相同的方法将文件重命名为更合理的名称:
mv -i ~olb/Email*COV*guidance_for_the_charity_sector* /home/olb/COV_guidance_for_the_charity_sector.txt
Run Code Online (Sandbox Code Playgroud)