zsh tips
Posted on 2018-10-18(목) in zsh
expr
% expr 10 \* 3
30
% expr length 1234567
7
# expr substr [string] [pos] [length]
% expr substr 1234567 3 2
34
# expr index [string] [chars]
% expr index 1234567 34
3
noglob
- 파일 이름 치환 기능을 비활성화한다.
% echo *
file1 file2 file3 file4
% ls *
file1 file2 file3 file4
% *
zsh: permission denied: file1
$ set -o noglob
$ echo *
*
$ ls *
ls: cannot access '*': No such file or directory
$ *
zsh: command not found: file1
참고: “set -o noglob” in bash shell script - Stack Overflow
‘*’ 추가 사항
% *
zsh: command not found: a.sh
% ls
a.sh* b.sh*
% cat *
#!/usr/bin/env sh
echo "a"
#!/usr/bin/env sh
echo "b"
% export PATH=.:$PATH
% *
a
ls
permission 으로 찾기
# file ownership/permissions
ls -ld *.*(u:apache:) # find all files that don’t have the write permission to group in current directory and all subdirectories
ls **/*(.:g-w:)
ls *(.f644) # files with permissions 644
ls *(.g:root:) # files belonging to group root
ls *(.u:apache:) # files belonging to user apache
ls -l *(.rwg:nobody:u:root:) # user has read/write permissions