1

Я думал, что перемещаю подкаталог на уровень выше, чтобы он стал родным братом его родителя. Но теперь он совершенно невидим. Это ушло?

Вот команда, которую я использовал:

mv parentdir/mydir ../mydir

3 ответа3

2

Я понял. Все, что я сделал, это изменил имя так, чтобы оно начиналось с .., и это сделало его скрытым для команды "ls".

0

При запуске такой команды, как cp , scp , mv и т. П., Где вторым аргументом является каталог, безопаснее всего заканчивать его символом /. , так что и вы, и команда знаете, что вы ищете каталог там. Например, вместо этого:

$ mv /opt/foo /temp

Я бы сделал:

$ mv /opt/foo /temp/.

и получите сообщение об ошибке:

mv: cannot move `/opt/foo' to `/temp/.': No such file or directory

потому что, конечно, я хотел набрать /tmp/. , Если бы я выполнил первую команду, я бы тихо - и совершенно непреднамеренно - переименовал каталог.

0

Если ../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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .