mv перемещает или переименовывает файлы и каталоги и создает их резервные копии; переименовать просто переименовывает файлы.
mv имеет больше возможностей и опций. Посмотрите на переключатели на справочных страницах для каждого, чтобы увидеть различия в возможностях. Давайте посмотрим, используя man в Ubuntu 18.04LTS (ваш пробег может варьироваться в зависимости от версии каждого пакета):
параметры mv (без справки и версии)
--backup[=CONTROL]
make a backup of each existing destination file
-b like --backup but does not accept an argument
-f, --force
do not prompt before overwriting
-i, --interactive
prompt before overwrite
-n, --no-clobber
do not overwrite an existing file
If you specify more than one of -i, -f, -n, only the final one takes effect.
--strip-trailing-slashes
remove any trailing slashes from each SOURCE argument
-S, --suffix=SUFFIX
override the usual backup suffix
-t, --target-directory=DIRECTORY
move all SOURCE arguments into DIRECTORY
-T, --no-target-directory
treat DEST as a normal file
-u, --update
move only when the SOURCE file is newer than the destination file or when the destination file is missing
-v, --verbose
explain what is being done
-Z, --context
set SELinux security context of destination file to default type
параметры переименования (опуская справку и версию)
-s, --symlink
Do not rename a symlink but its target.
-v, --verbose
Show which files where renamed, if any.
-n, --no-act
Do not make any changes.
-o, --no-overwrite
Do not overwrite existing files.
В некотором смысле файлы можно рассматривать как простой способ хранения глобальных переменных, глобальных, чтобы они были видны отовсюду. Таким образом, состояние (отображено/не отображено )может быть сохранено в виде строки в файле.
Не самая изящная вещь, но этот скрипт (с именем xctl )пока должен подойти.
#!/usr/bin/env zsh
# This file serves as a global variable value holder showing if the windows are mapped or not.
state=/tmp/state
for process in ${@:1}; do
case $1 in
(show) xdotool search --class $process windowmap %@ windowraise %@;;
(hide) xdotool search --onlyvisible --class $process windowunmap %@;;
(*) break;;
esac
done
[[ $1 == toggle ]] && {
[[ -f $state ]] && [[ `cat $state` == show ]] && xctl hide ${@:1} || xctl show ${@:1}
} || echo $1 > $state
Чтобы переключить набор окон, запустите xctl toggle window1 window2...
.
Сценарий должен находиться в пути к оболочке.