我有一个名为cam的用户。 Cam存储了一堆文件。现在我想移动这些文件,所以我尝试了以下内容......
mv: cannot stat ‘/home/cam/DCS-*.jpg’: No such file or directory
但是当我运行这个命令时,我得到......
sudo mv /home/cam/DCS-934L2015110711425501.jpg /home/cam/cam/
但是如果我像詹姆斯那样扼杀命令
{{1}}
工作正常。 WTF我错过了
答案 0 :(得分:2)
如果我执行了
sudo ls /home/cam
我看到了所有内容,但没有sudo
我没有权限查看任何内容。
执行此命令时:
sudo mv /home/cam/DCS-*.jpg /home/cam/cam/
shell根据当前用户的权限扩展*
。由于当前用户无法看到这些文件(ls /home/cam
没有权限),因此shell无法展开参数列表。
sudo是否应该拥有权限?
没有。使用sudo
,mv
命令将以root身份执行,但参数列表扩展在执行传递给sudo mv
之前发生。
要使用root权限进行*
扩展(以便目录的内容可见),您可以将命令包装在自己的shell中,如下所示:
sudo sh -c 'mv /home/cam/DCS-*.jpg /home/cam/cam/'