Из каталога test
сделайте:
mv -t player *.txt
Предполагая, что все текстовые файлы заканчиваются на .txt
.
Это mv
все .txt
файлы из текущего каталога (test/
) в подкаталог player/
.
ps -o comm= -p "$(($(ps -o ppid= -p "$(($(ps -o sid= -p "$$")))")))"
Может дать хорошие результаты. Он дает имя процесса, который является родительским для лидера сеанса. Для процессов, запущенных в эмуляторе терминала, это обычно будет процесс, выполняющий этот эмулятор терминала (если только не выполняются такие вещи, как screen
, expect
, tmux
... (хотя обратите внимание, что screen
и tmux
являются эмуляторами терминала), либо новые сеансы запускаются явно с помощью setsid
, start-stop- daemon
...)
Если вы обнаружите, что вложенные скобки трудно читать, вы можете записать их в несколько строк:
ps -o comm= -p "$((
$(
ps -o ppid= -p "$((
$(
ps -o sid= -p "$$"
)
))"
)
))"
Или использовать переменные (которые также могут помочь сделать сценарий более понятным):
sid=$(ps -o sid= -p "$$")
sid_as_integer=$((sid)) # strips blanks if any
session_leader_parent=$(ps -o ppid= -p "$sid_as_integer")
session_leader_parent_as_integer=$((session_leader_parent))
emulator=$(ps -o comm= -p "$session_leader_parent_as_integer")
Вы также можете попробовать выполнить синтаксический анализ wtmp
, где эмуляторы терминала обычно регистрируют запись со своим pid, связанным с псевдотерминальным устройством. Это работает для меня в системе Debian при условии, что не задействованы expect / screen / tmux ...:
ps -o comm= -p "$(
dump-utmp -r /var/log/wtmp |
awk -v tty="$(ps -o tty= -p "$$")" -F ' *\\| *' '
$2 == tty {print $5;exit}')"
(с использованием dump-utmp
из GNU acct
).
Чтобы найти имя эмулятора терминала, используемого текущей оболочкой, вы можете попросить систему X Window дать вам имя окна, которое оболочка в настоящее время отображается в:
$ xwininfo -id $WINDOWID | awk '/^xwin/ { print $NF }'
Это возвращает строку «xterm»
для меня в XTerm и «urxvt»
, когда я запускаю в Rxvt-unicode. Результат, вероятно, будет другим, если у вас есть привычка менять заголовок окна, потому что я думаю, что это то, что вам здесь возвращают.