Лично, я просто стараюсь не определять псевдонимы с теми же именами как команды, таким образом, ls
всегда вызывает фактическую команду. У меня есть псевдонимы или функции для различных комбинаций опций как l
, ll
, и lg
. (Это означает, что мне нужно unalias ls
в моем .bashrc
или .cshrc
.)
Я нахожу, что предположения ОС, о которых опциях я мог бы предпочесть (переопределение предположений о разработчиках ls
сама команда), редко соответствуют моим собственным персональным вкусам. Мне, оказывается, не нравится вид ls --color=auto
, и его четкость может варьироваться значительно между черным-на-белом и белым-на-черном цветом.
YMMV и другие решения, конечно, все еще хороши для знания.
Rsync мог сделать это:
rsync -R --remove-source-files a/b/c/d /TARGETDIR/
Но строго говоря это - больше копия, чем переименовывание.
функция проста:
mkmv() {
mkdir -p -- "$2/$(dirname -- $1)" && mv -- "$1" "$2/$1"
}
и вероятно более эффективно (хотя rsync
имеет еще несколько опций, которые позволяют Вам копировать полномочия или другие атрибуты файлов или каталогов).