mv -i
только подсказки, если место назначения существует.
yes n | mv -i …
перемещения все файлы, которые не существуют в целевом каталоге. На FreeBSD и OSX, можно сократить это к mv -n …
.
Обратите внимание, что ни один из них не объединит спор каталога с существующим каталогом на то же имя в целевом каталоге.
Отдельный вопрос - то, как действовать на все файлы в текущем каталоге. Существует две проблемы: захват всех файлов (*
опускает точечные файлы), и не столкновение с командной строкой. На Linux (или в более общем плане с GNU находят и GNU coreutils):
find . -mindepth 1 -maxdepth 1 -exec mv -i -t .. -- {} +
С GNU находят, но не GNU coreutils (или более старый GNU coreutils):
find . -mindepth 1 -maxdepth 1 -exec sh -c 'mv -i -- "$@" "$0"' .. {} +
Портативно:
find . -name . -o -exec sh -c 'mv -i -- "$@" "$0"' .. {} -type d -prune
Поскольку обычный zsh делает вещи легче. Это не имеет ограничения длины командной строки внутренне, поэтому при использовании mv
встроенный Вы не должны волноваться об этом. И можно сказать этому не игнорировать точечные файлы с D
спецификатор шарика. Ограничение: это не работает через файловые системы (с zsh 4.3.10).
zmodload zsh/files
mv -i -- *(D) ..
Попробовать sudo mlabel -i <device> ::<label>
, например, sudo mlabel -i /dev/sdb1 ::new_label
.