Shell
在 find 命令中使用“單引號”有什麼區別
find ~/ -name *test.txt find ~/ -name '*test.txt'
我需要建構一個範例,其中第一個表單失敗但第二個仍然有效。
引號保護內容免受 shell 萬用字元擴展。執行該命令(或者甚至更簡單,只是
echo *test.txt
在一個有footest.txt
文件的目錄中,然後在一個沒有任何文件結尾的目錄中test.txt
,你會看到不同之處。$ ls a b c d e $ echo *test.txt *test.txt $ touch footest.txt $ echo *test.txt footest.txt
find 也會發生同樣的事情。
$ set -x $ find . -name *test.txt + find . -name footest.txt ./footest.txt $ find . -name '*test.txt' + find . -name '*test.txt' ./footest.txt $ touch bartest.txt + touch bartest.txt $ find . -name *test.txt + find . -name bartest.txt footest.txt find: paths must precede expression Usage: find [-H] [-L] [-P] [path...] [expression] $ find . -name '*test.txt' + find . -name '*test.txt' ./bartest.txt ./footest.txt