魔術師見習いのノート

プロフィール

魔術師見習い
Author魔術師見習い-_-.
Twitter魔術師見習い

コンピュータ関係のメモを主に書きます.

MENU

ZSHメモ

投稿日:
タグ:

ZSHの機能に関するメモ。

名前修飾子

**
再帰的。

ディレクトリhoge以下の全てのCファイル(.c)を検索。

ls hoge/**/*.c

ファイル名(.)
通常ファイル

カレントディレクトリ以下の通常ファイルから,文字列MAX_ORDERを含むファイルを検索。

egrep MAX_ORDER **/*(.)

ディレクトリ名(/)
ディレクトリ
ファイル名(L[kmp][+-]N)
ファイルサイズで絞り込む。

記号説明
kKB
mMB
pブロック
記号説明
 一致
-未満
+大きい
324バイトのCファイル
ls C*(L324)
3KB以上の全てのファイル
ls *(Lk+30)
ls *(L+30000)

ファイル名(m[Mwhms][-+]N)
修正時刻で絞り込む。

3日以内に修正したファイル
ls *(m-3)
カレントディレクトリ以下のhogeディレクトリ下の10時間より前に修正したファイル
ls **/hoge/*(mh+10)
M
w
h時間
m
s
記号説明
-指定した値以内(m-3なら3日以内)
+指定した値より前(m+3なら3日より前)

ファイル名(fSPEC)
アクセス権で絞り込み。SPECはchmodなどを参考に。
接頭辞がabcのアクセス権が755のファイル
abc*(f755)
abc*(f=755)
所有者はかけるが,グループは書けないCファイル
*.c(f/u+w,g-w/)
所有者が全ての権限のrbファイル
*.rb(f7??)
グループとその他のユーザが書き込みできないpyファイル
*.py(f-?22)
グループとその他のユーザが書き込み可能なpyファイル
*.py(f+?22)
?はいずれの値でも良い場合を表す。

記号説明
 完全一致
=
-そのビットがセットされている場合
+そのビットがセットされていない場合

ファイル名(D) 接頭辞がドットのファイルを含む

読み込み書き込み実行
userrwx
groupAIE
worldRWX
記号説明
ssetuid
Ssetgid
tsticky

ファイル名(a[Mwhms][-+]N)
アクセス時刻で絞り込み。
ファイル名(i[Mwhms][-+]N)
iノード修正時刻で絞り込み。

ファイル名(M)
一致したファイルがディレクトリの時,末尾に/を付ける。
echo *(M)
ファイル名(n)
ファイル名を整数とみなして小さい順にソート。
echo *
1 10 2 3 4 5 6 7 8 9
echo *(n)
1 2 3 4 5 6 7 8 9 10
ファイル名(onLlamcdN)
ソート
ファイル名(OnLlamcdN)
逆ソート
記号説明
nファイル名(標準)
Lファイルサイズ
lリンクカウント
aアクセス時刻
m修正時刻
ciノード修正時刻
dディレクトリ優先
N並べ替えなし
大きいサイズ順にファイル名を表示
echo *(OL)
ファイル名(N)
指定したファイル名が存在しない時エラーをおこkさない。
存在する場合
echo /tmp/(N/)
/tmp
存在しない場合
echo /tm(N/)
ファイル名(-)
ファイルがシンボリックの時,シンボリックファイルが指すものに。

ファイル名(@)
シンボリックリンク
ファイル名(*)
実行ファイル
ファイル名(=)
ソケットファイル
ファイル名(P)
名前付きパイプ(FIFO)
ファイル名(%)
デバイスファイル
ファイル名(%b)
ブロックデバイスファイル
ファイル名(%c)
キャラクタデバイスファイル
ファイル名(D)
接頭辞がドットのファイルを含む
ファイル名(U)
現在のUIDのユーザが所有するファイル。
ファイル名(G)
現在のGIDのユーザが所有するファイル。
ファイル名(uID)
UIDがIDのファイル。
userAのファイル
*.[hc](u:userA:)
userBのファイル
*.[hc](u/userB/)
ファイル名(gID)
GIDがIDのファイル。

NOT, AND, OR
NOT
ファイル名(^)
通常ファイル以外の全てのファイル
*(^.)
*(OL)と同じ
*(^oL)
AND
7日前から2日前までに修正されたファイル
*(m+2m-7)
1KBより大きく10KB未満のファイル
*(Lk+1Lk-10)
2年前の30KBより大きい通常ファイル
*(mM+24Lk+30.)
OR
カンマ(,)で区切るとORになる。
userAかuserBのCファイルかヘッダファイル
*.[ch](u:userA:, u/userB/)

変数

${変数名#接頭パターン}
接頭パターンに対応する部分を削除。
${変数名##接頭パターン}
接頭パターンに対応する部分を削除。最長一致
${変数名%接尾パターン}
接尾パターンに対応する部分を削除。
${変数名%%接尾パターン}
接尾パターンに対応する部分を削除。最長一致。
${変数名/パターン/置き換え文字列}
パターンに一致する部分を置き換え文字列で置き換える。
${変数名//パターン/置き換え文字列}
パターンに一致する全ての部分を置き換え文字列で置き換える。
${#変数名}
変数の値は文字数や要素数に置き換える。

数値範囲

<begin-end>
数値範囲内で一致するもの。
[begin-end]
[]は文字の一致。
user% ls <01-09>.jpg
1 2 3 8 9
{begin..end}
指定した範囲の数値の文字列に置き換え。
user% touch {1..10}
user% ls
1  10  2  3  4  5  6  7  8  9  
user% touch {01..10}
user% ls
01  02  03  04  05  06  07  08  09  10

一覧