Ваша команда ls -ld *\(2015\)
должна быть разделена на две части:
-l
для каждого из имен файлов, перечисленных в результате расширения, выполненного оболочкой. Избежать перехода внутрь каталогов можно с помощью -d
. В общем, это будет работать со всеми оболочками для получения всех каталогов (с добавленным концевым /):
echo */ ### disregarding effects of `-` and `\`
И для получения всех каталогов, которые не соответствуют окончанию )
:
bash echo ! (*\))/
ksh93 printf '%s ' !(*\))/
### избежать интерпретации \
.
zshecho -E ^*\)/
С расширенным глобированием, активным для bash и zsh (ksh использует его по умолчанию).
shopt -p extglob ### for bash (on by default in interactive use).
setopt extendedglob ### for zsh
set -- */
printf '%s ' "${@%/}"
Или для bash и ksh (например):
set -- !(*\))/
printf '%s ' "${@%/}"
zsh предлагает более простой способ удаления корешка \
.
[tag:zsh]`echo -E ^*\)(/)`
Обратите внимание, что выше я упустил (намеренно) использование [ ]
.
Использование [!\)]
может показаться эквивалентным (для одного символа):
echo !(*\))/
echo *[!\)]/
Но квадратные скобки не работают для строки. Это не эквиваленты:
echo !(*\(2015\))/
echo *[!\(2015\)]/
Однако, следует отметить, что echo *[!\)]/
работает для POSIX-оболочек.
ls -ld -- *[!\)]/ ### POSIXly.
В зависимости от оболочки, и от того, является ли проблема в конце /
проблемой или нет.
Две части ls
и shell
вместе взятые могут быть:
ls -ld -- !(*\(2015\))/ ### An example for bash and GNU ls.
Сама команда (GNU) ls
включает способ избежать шаблонов:
ls -l --ignore='*)'
Bash предлагает GLOBIGNORE:
GLOBIGNORE='*)/'; echo */
Может быть find
?
find . -maxdepth 1 ! -name . -prune -type d ! -name '*2015)'
Но find кажется мне излишеством для этой простой необходимости.
А как насчет xtrlock
?
xtrlock locks the X server till the user enters their password at the keyboard.
While xtrlock is running, the mouse and keyboard are grabbed and the mouse cursor becomes a padlock. Output displayed by X programs, and windows put up by new X clients, continue to be visible, and any new output is displayed normally.
The mouse and keyboard are returned when the user types their password, followed by Enter or Newline. If an incorrect password is entered the bell is sounded. Pressing Backspace or Delete erases one character of a password partially typed; pressing Escape or Clear clears anything that has been entered.
If too many attempts are made in too short a time further keystrokes generate bells and are otherwise ignored until a timeout has expired.
The X server screen saver continues to operate normally; if it comes into operation the display may be restored by the usual means of touching a key (Shift, for example) or the mouse.
В моей системе Debian он находится в репозиториях:
sudo aptitude install xtrlock