俺反正是經(jīng)常忘啊,用的時(shí)候總是翻箱倒柜的找也不是個(gè)事,把它們列在這里吧。

  • –b 當(dāng)file存在并且是塊文件時(shí)返回真
  • -c 當(dāng)file存在并且是字符文件時(shí)返回真
  • -d 當(dāng)pathname存在并且是一個(gè)目錄時(shí)返回真
  • -e 當(dāng)pathname指定的文件或目錄存在時(shí)返回真
  • -f 當(dāng)file存在并且是正規(guī)文件時(shí)返回真
  • -g 當(dāng)由pathname指定的文件或目錄存在并且設(shè)置了SGID位時(shí)返回為真
  • -h 當(dāng)file存在并且是符號(hào)鏈接文件時(shí)返回真,該選項(xiàng)在一些老系統(tǒng)上無效
  • -k 當(dāng)由pathname指定的文件或目錄存在并且設(shè)置了“粘滯”位時(shí)返回真
  • -p 當(dāng)file存在并且是命令管道時(shí)返回為真
  • -r 當(dāng)由pathname指定的文件或目錄存在并且可讀時(shí)返回為真
  • -s 當(dāng)file存在文件大小大于0時(shí)返回真
  • -u 當(dāng)由pathname指定的文件或目錄存在并且設(shè)置了SUID位時(shí)返回真
  • -w 當(dāng)由pathname指定的文件或目錄存在并且可執(zhí)行時(shí)返回真。一個(gè)目錄為了它的內(nèi)容被訪問必然是可執(zhí)行的。
  • -o 當(dāng)由pathname指定的文件或目錄存在并且被子當(dāng)前進(jìn)程的有效用戶ID所指定的用戶擁有時(shí)返回真。

UNIX Shell 里面比較字符寫法:

  • -eq   等于
  • -ne    不等于
  • -gt    大于
  • -lt    小于
  • -le    小于等于
  • -ge   大于等于
  • -z    空串
  • =    兩個(gè)字符相等
  • !=    兩個(gè)字符不等
  • -n    非空串