Я думал, что перемещаю подкаталог на уровень выше, чтобы он стал родным братом его родителя. Но теперь он совершенно невидим. Это ушло?
Вот команда, которую я использовал:
mv parentdir/mydir ../mydir
Я думал, что перемещаю подкаталог на уровень выше, чтобы он стал родным братом его родителя. Но теперь он совершенно невидим. Это ушло?
Вот команда, которую я использовал:
mv parentdir/mydir ../mydir
Я понял. Все, что я сделал, это изменил имя так, чтобы оно начиналось с .., и это сделало его скрытым для команды "ls".
При запуске такой команды, как cp
, scp
, mv
и т. П., Где вторым аргументом является каталог, безопаснее всего заканчивать его символом /.
, так что и вы, и команда знаете, что вы ищете каталог там. Например, вместо этого:
$ mv /opt/foo /temp
Я бы сделал:
$ mv /opt/foo /temp/.
и получите сообщение об ошибке:
mv: cannot move `/opt/foo' to `/temp/.': No such file or directory
потому что, конечно, я хотел набрать /tmp/.
, Если бы я выполнил первую команду, я бы тихо - и совершенно непреднамеренно - переименовал каталог.
Если ../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