Экран не имеет переменной среды, такой как TMUX
, однако для TERM
установлено значение «экран», поэтому Вы можете это проверить. У экрана есть способ повторного прикрепления / создания единого набора флагов.
-d -R Повторно подключить сеанс и, при необходимости, отсоединить или даже сначала создать его.
# screen Start Script Need To Work!!
if which screen >/dev/null 2>&1; then
#if not inside a screen session, and if no session is started, start a new session
[ "$TERM" != "screen" ] && screen -d -R
fi
Это должно решить эту проблему
for file in $(find ./)
do
newname=$(echo ${file} | sed -e 's/\.\(.*\)\././')
mv ${file} ${newname}
done
Использование утилиты переименования perl:
prename 's/\.[^.]*\././' *
prename
позволяет вам переименовывать файлы, используя выражения Perl.
В некоторых системах одна и та же программа называется переименовать
, а не (или так же) prename
. Существуют и другие программы, называемые rename
, которые работают по-другому - проверьте справочную страницу rename
в вашей системе.
например. по умолчанию переименование
в системах Debian является символической ссылкой на prename
(через систему / etc / alternatives
). Другие дистрибутивы могут отличаться.
В Debian также есть пакет под названием rename
, который содержит расширенную версию prename
под названием file-rename
. Это более новая обновленная версия того же скрипта. У него более высокий приоритет среди альтернатив, поэтому при установке пакета символическая ссылка переименовать
изменится на file-rename
.
В zsh используйте zmv
. Запустите autoload -U zmv
или поместите это в свой `/ .zshrc`, затем
zmv '(*).*(.*)' '$1$2'
или
zmv -w '*.*.*' '$1.$3'
. Альтернативно, если у вас есть команда prename
(Perl-скрипт, который применяется выражение для каждого имени файла):
prename 's/\..*\././' *.*.*
Только с инструментами, доступными в каждой системе POSIX, используйте цикл оболочки и расширение параметра для извлечения частей имени.
for x in *.*.*; do
mv -- "$x" "${x%.*.*}.${x##*.}"
done