我知道它/
代表文件夹,但有一件事我不明白。
说明问题的命令:
mv ~/Documents/newfolder ./anothernamefolder
为什么会有/
这里?它有什么作用?为什么我不能输入:
mv ~/Documents/newfolder . anothernamefolder
答案1
根据我的评论链接(Linux 中的 ./(点斜线)是什么意思?),正如你所想的那样,斜杠(/
)是一个目录“表示”。
在您的两个示例中,斜杠代表不同的事物:
mv ~/Documents/newfolder ./anothernamefolder
newfolder
从Documents
位于用户主目录( )下移动~
到当前目录(./
)并将其命名为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
出错。