Как решить, что mv перемещается в каталог вместо того, чтобы заменить каталог?

Да, вход в систему как корень, которые дают Вам управление доступом суперпользователя.
То же понятие в окнах, можно войти в систему в терминального администратора использования.

19
16.01.2013, 01:05
3 ответа

mv a b попытки переместиться a в b если b каталог или символьная ссылка на каталог. Иначе это переименует (или скопирует и удалит если в различных файловых системах), a кому: b.

Чтобы заставить последовательный результат перемещать файл в каталог, можно сделать:

mv file dir/

или

mv file dir/.

Если dir не существует, Вы получите ошибку, и она не переименует file кому: dir.

Если с другой стороны, Вы хотите сделать a rename не имея необходимость волноваться, существует ли целевой файл как каталог или не с GNU mv, можно сделать:

mv -T file dest

В этом случае, file не будет перемещен в dest если dest каталог. Однако, если оба file и dest каталоги и dest пусто, file будет переименован к dest (и оригинал dest удаленный). Если и каталоги и dest непусто, mv -T будет жаловаться.

То же, если file и dest не каталоги (и это включает символьные ссылки включая символьные ссылки на каталоги), file будет переименован к dest (хотя Вы получите подсказку, если у Вас не будет разрешения записи к dest), и оригинал dest будет удален. Существует различие с mv file dest в случае, где dest символьная ссылка на каталог. С -T, file переименован к dest, но без -T, file перемещен в каталог, которым указывают dest.

Таким образом, таким образом, после mv -T file dest, также file будет переименован к dest или Вы получите сообщение об ошибке (или подсказка). Если команда, за которой следуют, оригинал dest, если это существовало, заранее будет удален.

16
27.01.2020, 19:45

Это полностью зависит, того, если уже был каталог, названный '/hello2', уже существующим или нет.

Если/hello2 будет существовать И будет каталогом, то переместитесь, то будет всегда перемещать / привет в/hello/hello2

Если/hello2 не будет существовать, то переместитесь, то будет всегда переименовывать / привет к/hello2

Если/hello2 будет существовать И будет файлом, то Вы получите ошибку, "не может перезаписать некаталог 'hello2' с каталогом 'привет'.

14
27.01.2020, 19:45

Я попробовал их

mkdir test1
mv -v test1 test2
output:`test1' -> `test2'
mkdir test1
mv -v test2 test1
output: `test2' -> `test1/test2'
touch test2
output:mv: cannot overwrite non-directory `test2' with directory `test1'

надежда это объясняет все. -v подробный режим.

3
27.01.2020, 19:45

Теги

Похожие вопросы