shell - Expansion in Linux -
I was reading the tutorial below
This is about double quotes In: / P>
double quote
We will see double quotes of the kind of quote we have. If you place the text in double quotation marks, then all special characters used by the shell lose their particular meaning and are considered as normal characters. Exceptions are "$", "\" (backslash), and "` "(back-coat). This means that word-split, pathname extension, tilde extension, and brace detail are suppressed, but parameter extension, arithmetic expansion, and command replacement are still done.
And about single quotes:
Single quotes
If you need to suppress all the extensions, You can use quotes.
Why this LS
why only *. Txt
does not work "* .txt"
or '*. Txt '
$ ls -l * .txt -rw-r - r-- 1 Noble No 8893 Apr 17 06:25 BigText.txt -rwxr-xr-x 1 Pride None 54376 Apr 18 12:32 File .txt -rw-r - r-- 1 Noble No 371 Apr 23 21:04 Filelists. TT-RWXR-XR-X1 Pride None 54386 April 18 12:28 File Old. Txt -R-R-R-R-1 Pride 1963 April 17 06:19 Readet Text- rw-r - r-- 1 Noble No 651 April 24 06:28 $ temp.txt $ ls -l "* .txt" can not access ls: * .txt: Any such file or directory $ ls -l '* .txt' ls: * Can not access .txt: Not a file or directory
My question is, why, with find or grep
why "* .txt ", '* .txt'
provide both extensions:
For example
>
Find $ -Name * .txt Search: Path must be before expression: File.txt Usage: Search [-H] [-L] [-P] [-Oolaval] [-D Help | Tree | Search | State | Rate | Opt. Exec] [path ...] [expression] $ find-name "* .txt" ./bigText.txt ./file.txt ./Filelist.txt ./FileOld.txt ./Read.txt ./sample/BigText .txt ./sample/File.txt ./sample/ FileOld.txt ./sample/Read.txt ./sample/temp.txt ./temp.txt $ find -name '* .txt' ./BigText.txt. /File.txt ./Filelist.txt ./FileOld.txt ./Read.txt ./sample/BigText.txt ./sample/File.txt ./sample/ FileOld.txt ./sample/Read.txt ./sample /temp.txt ./temp.txt
find
Enter your *
and ndash; There is no need for a shell to do this.
If you write commands in the shell (or when shell executes a command from a script), then it should be aware of what happens to you:
First of all, all the extensions Variable detail (like $ foo
is changed to the value of foo
), like the extension of the tilde ( ~ < / Code> changes to the home directory path) and globing (turns
*
in all the codes).
Then, after that extension
when you call search
, you do not actually open do not want to expand, *
which you pass as find
as part of a pattern, because search
command < Code> * and use it as a search pattern (like find
).
Comments
Post a Comment