Назад | Перейти на главную страницу

странность команды mv в Linux

кто-нибудь может сказать мне, почему, когда я печатаю:

mv -f ./tmp/members ./

Я получил:

mv: cannot move `./tmp/members' to a subdirectory of itself, `./members'

И более того, как правильно переместить этот каталог?

Кроме того, в ./members уже есть каталог ... Я хочу полностью перезаписать этот каталог, а не просто добавить в него новое содержимое.

Directory Structure:
./
./members
./members/srno
./members/srno/expired
./members/1
./members/1/active
./members/members
./members/members/srno
./members/members/srno/expired
./members/members/1
./members/members/1/active
./members/members/57364
./members/members/57364/expired
./members/members/11939
./members/members/11939/expired
./members/members/123
./members/members/123/expired
./members/members/73331
./members/members/73331/expired
./members/members/88144
./members/members/88144/expired
./members/members/25051
./members/members/25051/expired
./members/57364
./members/57364/expired
./members/11939
./members/11939/expired
./members/123
./members/123/expired
./members/73331
./members/73331/expired
./members/88144
./members/88144/expired
./members/remove
./members/25051
./members/25051/expired
./index.html
./tmp
./tmp/members
./tmp/members/srno
./tmp/members/srno/expired
./tmp/members/1
./tmp/members/1/active
./tmp/members/57364
./tmp/members/57364/expired
./tmp/members/11939
./tmp/members/11939/expired
./tmp/members/123
./tmp/members/123/expired
./tmp/members/73331
./tmp/members/73331/expired
./tmp/members/88144
./tmp/members/88144/expired
./tmp/members/25051
./tmp/members/25051/expired
./tmp/subscribers.xml
./premium.cgi

Спасибо!

-Эрик

Попробуйте следующее:

cp -rf ./tmp/members/* ./

После этого удалите ./tmp/members если вы не хотите хранить копию. mv не перезаписывает.

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

Это должно работать:

mv -f ./tmp/members .

Другой ответ (хотя вы уже приняли другой):

mv ./members ./.trash-members ; mv ./tmp/members ./ ; rm -rf ./.trash-members &

Таким образом, старый каталог удаляется в фоновом режиме, а новый каталог помещается на место в очень короткие сроки (два перемещения должны быть очень быстрыми, если вы находитесь в одной файловой системе)

Также обратите внимание, что это решение не использует безопасные временные файлы должным образом.