在 macOS 的终端中,我可以手动执行此命令,它会执行我想要的操作:
cd ~/Library/Preferences
mv Adobe "Adobe.old.$(date +%c)"
我想为此创建一个简单的脚本,可以通过终端 shell 运行。我尝试创建一个包含以下内容的文件,但它对我来说不起作用:
mv "~/Library/Preferences/Adobe" "~/Library/Preferences/Adobe.old.$(date +%c)"
我得到以下输出:
<name>@<machinename> desktop % sh adobecleanup.txt
mv: rename ~/Library/Preferences/Adobe to ~/Library/Preferences/Adobe.old.Mon Jan 18 16:44:15 2021: No such file or directory
答案1
您将用户主目录路径前缀括~/
在引号中。
看看你已经做了哪些有效的事情:
cd ~/Library/Preferences
mv Adobe "Adobe.old.$(date +%c)"
看看不起作用的命令:
mv "~/Library/Preferences/Adobe" "~/Library/Preferences/Adobe.old.$(date +%c)"
关键区别在于,在有效的情况下,路径以 开头,~/
并且不带引号。而在无效的命令中,路径以 开头,"~/
并且明确带引号。当您这样做时,系统实际上是在寻找~/
文字路径;而不是用户主目录扩展路径。
为了让它工作,请像这样取消引用整个内容:
mv ~/Library/Preferences/Adobe ~/Library/Preferences/Adobe.old.$(date +%c)
或者只是不要在引用的路径中包含前缀路径,如下所示:
mv ~/"Library/Preferences/Adobe" ~/"Library/Preferences/Adobe.old.$(date +%c)"