做什么/做什么?

做什么/做什么?

我知道它/代表文件夹,但有一件事我不明白。

说明问题的命令:

mv ~/Documents/newfolder ./anothernamefolder

为什么会有/这里?它有什么作用?为什么我不能输入:

mv ~/Documents/newfolder . anothernamefolder

答案1

根据我的评论链接(Linux 中的 ./(点斜线)是什么意思?),正如你所想的那样,斜杠(/)是一个目录“表示”。

在您的两个示例中,斜杠代表不同的事物:

mv ~/Documents/newfolder ./anothernamefolder

newfolderDocuments位于用户主目录( )下移动~到当前目录(./)并将其命名为anotherfolder

在第二个

touch {jan,feb,mar,apr}_{2017..2019}/file{1..100}

您触摸多个目录中的文件。

因此,对于命令中指定的每个目录:{jan,feb,mar,apr}_{2017..2019}create files file{1..100}

这里为什么有“/”?它有什么作用?为什么我无法输入:

如上,./是当前目录的表示。

如果你用过

mv ~/Documents/newfolder . anothernamefolder

命令,您会收到错误,因为您指定了不明确的重定向:

$ mv ~/Documents/newfolder . anotherfolder
usage: mv [-f | -i | -n] [-v] source target
       mv [-f | -i | -n] [-v] source ... directory

您可以使用点.来移动,但这只会移动调用的文件夹newfolder而不更改其名称。

$ mv ~/Documents/newfolder .
$ ls
newfolder

答案2

/ 分开目录(文件夹是一个 GUI 术语)。

mv在-command/的单独~,Documents和的第一个参数中newfolder,表示每个都是前一个的子目录。

第二个参数也是如此,表示要将文件移动anothernamefolder..因为.(在该上下文中)意味着当前目录,./是不需要的。

正如您所建议的,只需删除/,就会改变命令的含义,也就是说您还(除了~/Documents/newfolder)想要移动.anothernamefolder。这是不可能的,并且会导致mv出错。

相关内容