Как выполнить команду по умолчанию, запускающую tmux?

Нерекурсивный

С ksh93 (в OS / X доступен как ksh ):

rmdir {4}(\d)_\1

(будьте осторожны, он может удалить каталог с именем {4} (\ d) _ \ 1 , если нет файла, соответствующего этому шаблону).

С zsh (в OS / X доступен как zsh ):

setopt extendedglob
rmdir [0-9](#c4)_[0-9]##(/e:'[[ ${REPLY%_*} = ${REPLY#*_} ]]':)

(этот вариант также имеет то преимущество, что учитываются только файлы типа , каталог с использованием квалификатора glob / выше).

С bash или другой оболочкой POSIX (например, sh большинства систем, включая OS / X ):

set -- [0-9][0-9][0-9][0-9]_[0-9][0-9][0-9][0-9]
for f do
  [ "${f#*_}" = "${f%_*}" ] && set -- "$@" "$f"
  shift
done
rmdir "$@"

(будьте осторожны, это может удалить каталог вызывается [0-9] [0-9] [0-9] [0-9] _ [0-9] [0-9] [0-9] [0-9] , если есть в текущем каталоге нет файлов XXXX_XXXX ).

Используя find и grep :

find . ! -name . -prune -type d -name '[0-9][0-9][0-9][0-9]_[0-9][0-9][0-9][0-9]' |
  grep -x '\./\(.*\)_\1' |
  xargs rmdir

С BSD найдите (как найдено в OS / X):

find . -maxdepth 1 -regex './\([0-9]\{4\}\)_\1' -type d -delete

С GNU найдите (обычно не встречается в OS / X, если не установлен через macports / homebrew / fink ...):

find . -maxdepth 1 -regextype grep -regex './\([0-9]\{4\}\)_\1' -type d -delete

Рекурсивно:

  • ksh93 :

     set -o globstar 
    rmdir - ** / {4} (\ d) \ 1 
     

    (имейте в виду, что он не удалит 1111_1111 , если есть 1111_1111 / 2222_2222 , так как он попытается сначала удалить 1111_1111 , что не может в нем есть каталог 2222_2222 , ksh93 не имеет квалификатора od glob (для порядка глубины) zsh )

  • zsh :

     setopt extendedglob 
    rmdir - ** / [0-9] (# c4) _ [0-9] ## (Dod / e @ '[[$ {$ {REPLY: t}% _ *} = $ {REPLY ## * _}]] '@) 
     
  • BSD find :

     LC_ALL = C find. -regex '. * / \ ([0-9] \ {4 \} \) _ \ 1' -тип d -delete 
     
  • GNU найти :

     LC_ALL = C найти. -regextype grep -regex '. * / \ ([0-9] \ {4 \} \) _ \ 1' -type d -delete 
     
6
30.03.2017, 11:07
1 ответ

Вы можете использовать сценарий для запуска tmux. Сохранение следующего в сценарии bash (или любой другой оболочке, которую вы используете, не забывая исправить хэш-удар (#!)), Сделав его исполняемым, а затем запустив сценарий, вы получите новый сеанс tmux с одним окном, на котором запущен vim. Настройте имена сеансов и окон, а также команду по своему вкусу.

#!/bin/bash
tmux new-session -d -s mySession -n myWindow
tmux send-keys -t mySession:myWindow "cd /my/directory" Enter
tmux send-keys -t mySession:myWindow "vim" Enter
tmux attach -t mySession:myWindow
13
27.01.2020, 20:27

Теги

Похожие вопросы