xxxxxxxxxx
find /path/to/folder/ -iname *file_name_portion*
#Example
find / -iname *test*
#Output
/downloads/test_2.txt
/downloads/test_1.csv
/home/ubuntu/first_test.txt
Search for a file in the terminal.
xxxxxxxxxx
# This will search for the file named myfile.
find ~/ -type f -name "myfile"
The find command allows you to search a specific file by its name. You can use the find command with -name option followed by the file name that you want to search.
For example, to search a file named file1.txt in the /etc directory, run the following command:
xxxxxxxxxx
find /etc -type f -name file1.txt
If you want to ignore the case during the file search, use the -i option as shown below:
find /etc -type f -iname file1.txt
You can use the following option if you want to search for a specific file type:
f – regular file
d – directory
l – symbolic link
c – character devices
b – block devices
xxxxxxxxxx
Do the following:
grep -Rnw '/path/to/somewhere/' -e 'pattern'
-r or -R is recursive ; use -R to search entirely
-n is line number, and
-w stands for match the whole word.
-l (lower-case L) can be added to just give the file name of matching files.
-e is the pattern used during the search
Along with these, --exclude, --include, --exclude-dir flags could be used for efficient searching:
This will only search through those files which have .c or .h extensions:
grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
This will exclude searching all the files ending with .o extension:
grep --exclude=\*.o -rnw '/path/to/somewhere/' -e "pattern"
For directories it's possible to exclude one or more directories using the --exclude-dir parameter. For example, this will exclude the dirs dir1/, dir2/ and all of them matching *.dst/:
grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/search/' -e "pattern"
This works very well for me, to achieve almost the same purpose like yours.