带有包含随机字符串的路径通配符的 mv 命令

带有包含随机字符串的路径通配符的 mv 命令

我试图将文件移动到具有我无法提前知道的随机字符串的路径~/.config/foldername/45fhiu84.dev-edition/subfolder/

我努力了

mv ~/Downloads/myfile.txt ~/.config/foldername/*.dev-edition/subfolder/myfile.txt

mv ~/Downloads/myfile.txt ~/".config/foldername/"*".dev-edition/subfolder/myfile.txt"

答案1

正如斯蒂芬·基特(Stephen Kitt)指出的那样,只有当有零个或一个匹配目录时,以下内容才能正确工作。如果还有更多,则全局将匹配所有这些,您最终将移动文件并除最后一个目录外的所有目录进入最后一个匹配的目录。小心。


当 shell 看到星号(或问号)时,它会尝试查找与表达式匹配的路径。由于您在路径末尾包含了“myfile.txt”,shell 将查找它,如果找不到它,则匹配将失败。

因此,为了将该文件移动到该目录中,请使用:

mv ~/Downloads/myfile.txt ~/.config/foldername/*.dev-edition/subfolder/

(即只需省略文件名。)

如果你想移动文件更改名称,分两步进行:

mv ~/Downloads/myfile.txt ~/Downloads/newname.txt
mv ~/Downloads/newname.txt ~/.config/foldername/*.dev-edition/subfolder/

答案2

另一种方法...

mv ~/Downloads/myfile.txt $(echo ~/.config/foldername/*.dev-edition/subfolder/)myfile.txt

谢谢! =D

相关内容