6

Извиняюсь, если этот вопрос уже задавался, я не смог ничего найти ...

Допустим, я хочу заменить «старый материал» на «новый материал». В основном переименование для замены. Я пытаюсь использовать эту команду:

mv ~/newstuff ~/oldstuff

Но это только перемещает папку «newstuff» в папку «oldstuff».

Как бы я заменил «oldstuff» на «newstuff»?

Я использую OS X 10.7.

4 ответа4

5

Если ~/oldstuff не существует,

mv ~/newstuff ~/oldstuff

переименует newstuff в oldstuff . Если он существует, он переместит newstuff в oldstuff .

Итак, чтобы ответить на ваш вопрос, сначала удалите ~/oldstuff (или переименуйте его в olderstuff , посмотрите этот вопрос еще раз, как это сделать), затем используйте команду mv как вы это сделали.

3

Другое решение было бы использовать rsync. (Будьте осторожны с косыми чертами. Они важны).

Это скопирует все в новостях в старые вещи.

rsync -av ~/newstuff/ ~/oldstuff

И код ниже скопирует все в newstuff в oldstuff, и удалит все в oldstuff, которого нет в newstuff.

rsync -av --delete ~/newstuff/ ~/oldstuff

Обратите внимание, что ни одна из этих команд не будет ничего делать с файлами в ~/newstuff. Если вы хотите удалить их, вам нужно будет выполнить команду rm отдельно.

2

Ты можешь попробовать:

mv -f folder1/* folder2 && rmdir folder1

Переместит все в folder1 , включая файлы и каталоги в folder2 .

-f: не запрашивать перед перезаписью, эквивалентной --reply=yes .

Страница man mv.

1

У вас есть как минимум два варианта.

mv ~/newstuff/* ~/oldstuff
rmdir ~/newstuff
mv ~/oldstuff ~/newstuff

а также

mv ~/oldstuff ~/ancientstuff
mv ~/newstuff ~/oldstuff

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