У моего старого и нового каталога есть те же папки и файлы внутри.
Я пытаюсь:
mv -if old/* new/*
и получить ошибку
mv: не может перемещать `./xxxxxx 'в подкаталог себя
Как я могу переместить его?
У моего старого и нового каталога есть те же папки и файлы внутри.
Я пытаюсь:
mv -if old/* new/*
и получить ошибку
mv: не может перемещать `./xxxxxx 'в подкаталог себя
Как я могу переместить его?
Вы должны использовать mv -if old/* new/
без конечного *
.
Это связано с тем, что он развернут до
mv -if old/foo old/bar old/baz new/foo new/bar new/baz
то есть. переместить все в новый /baz
Это не то, что вы хотели.
[email protected]:/tmp/experiment$ ls a
11 22 33
[email protected]:/tmp/experiment$ ls b
22 33
[email protected]:/tmp/experiment$ ls
a b
[email protected]:/tmp/experiment$ mv a/* b
[email protected]:/tmp/experiment$ ls a
[email protected]:/tmp/experiment$ ls b
11 22 33
Это работает. Чего вы пытаетесь достичь? Не могли бы вы написать короткий пример того, как должны выглядеть исходные данные и как должны выглядеть выходные данные? Правда, я понятия не имею, что вы пытаетесь сделать:) Помогите мне помочь вам.
обратите внимание, что mv a/* b/не перемещает файлы. * (имя файла начинается с '.') в формате a/to b/
Пример:
$ mkdir -p a/d b && touch a/f a/.f a/d/.f
$ mv a/* b/
$ ls -a a/
. .. .f
Если вы копируете файловую систему ext2/3/4 в файловую систему FAT32, а имя файла имеет недопустимый символ для соглашений об именах FAT32, вы получите это ужасно раздражающее и неправильное, как адское сообщение об ошибке. Откуда мне знать? Я боролся с этой ошибкой - да, это KERNEL BUG - за 6 часов до того, как я осенил меня. Я думал, что это ошибка интерпретатора оболочки, я думал, что это ошибка "mv" - я попробовал несколько разных оболочек, все. Попробуйте этот эксперимент: в файловой системе ext "коснитесь" a: b "их" mv "в файловую систему FAT32. Попробуйте, вы будете наслаждаться (ненавидеть) результаты. То же самое верно для '<' и ' > ' (\ 074 и \076).
Спасибо за "man mv" - это настоящая большая помощь, не уходите с работы на день.
Возможно, вы получили ответ, но выше ответ не работает для меня.... и, наконец, много исследований я получил ответ. (Проблема связана с владением файлами)
и просто поместите sudo перед командой и ее работой....:) То же самое для команд cp и mv.
sudo mv -if old/* new/