我以为我将子目录向上移动了一层,这样它就成为其父目录的兄弟目录了。但现在它完全不可见了。它消失了吗?
这是我使用的命令:
mv parentdir/mydir ../mydir
答案1
我找到了答案。我所做的就是更改名称,使其以 .. 开头,这样它就对“ls”命令隐藏了。
答案2
如果../mydir
已经存在,则将其移入../mydir/mydir
。否则它位于../mydir
。
在这样的命令中,路径是相对于当前工作目录的(除非路径以 开头/
,在这种情况下它是绝对路径)。因此,您的命令并没有告诉mv
它创建mydir
的兄弟parentdir
,而是告诉它创建mydir
工作目录的兄弟。
您想要做的是以下两项之一:
# make parentdir/mydir to be a sibling of parentdir
$ mv parentdir/mydir ./
$ ls -1
parentdir
mydir
# make parentdir/mydir to be a sibling of parentdir
$ ( cd parentdir ; mv mydir ../ )
$ ls -1
parentdir
mydir
答案3
当运行诸如 、cp
等命令时,如果第二个参数是目录,最安全的方式是以 , 结尾,这样您和命令都知道您在那里查找目录。例如,不要这样做:scp
mv
/.
$ mv /opt/foo /temp
我会做:
$ mv /opt/foo /temp/.
并收到错误消息:
mv: cannot move `/opt/foo' to `/temp/.': No such file or directory
因为,当然,我本想输入/tmp/.
。如果我运行第一个命令,我就会默默地 — — 并且完全无意地 — — 重命名该目录。