---
name: "g.findfile"
section: "1grass"
platform: "linux"
package: "grass-doc"
version: "8.4.1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/g.findfile"
---

# g.findfile(1grass)

Searches for GRASS data base files and sets variables for the shell.

## NAME

**g.findfile**  - Searches for GRASS data base files and sets variables for the shell.

## KEYWORDS

general, map management, scripts

## SYNOPSIS

**g.findfile**\
 **g.findfile --help**\
 **g.findfile** \[-**nl**\] **element**=*string* **file**=*string*  \[**mapset**=*string*\]   \[--**help**\]  \[--**verbose**\]  \[--**quiet**\]  \[--**ui**\]

### Flags:

- **-n**

  Do not add quotes

- **-l**

  List available elements and exit

- **--help**

  Print usage summary

- **--verbose**

  Verbose module output

- **--quiet**

  Quiet module output

- **--ui**

  Force launching GUI dialog

### Parameters:

- **element**=*string* **\[required\]**

  Name of an element

- **file**=*string* **\[required\]**

  Name of an existing map

- **mapset**=*string*

  Name of a mapset (default: search path)\
   ’.’ for current mapset

## DESCRIPTION

*g.findfile* is designed for Bourne shell or Python scripts that need to search for mapset *elements*, including: raster, vector maps, region definitions and *imagery* groups.

The list of **element** names to search for is not fixed; any subdirectory of the mapset directory is a valid **element** name.

However, the user can find the list of standard GRASS **element** names in the file `$GISBASE/etc/element_list`. This is the file which *g.remove*, *g.rename* and *g.copy* use to determine which files need to be deleted/renamed/copied for a given entity type.

## NOTES

*g.findfile* writes four lines to standard output:\

```
name=’file_name’
mapset=’mapset_name’
file=’unix_filename’
fullname=’grass_fullname’
```

The output is *Bash* commands to set the variable *name* to the GRASS data base file name, *mapset* to the mapset in which the file resides, and *file* to the full UNIX path name for the named file. These variables may be set in the *Bash* as follows:\

```
eval `g.findfile element=name mapset=name file=name`
```

## EXAMPLES

### SHELL

**Raster map example:**\

```
eval `g.findfile element=cell file=elevation`
```

If the specified file (here: raster map) does not exist, the variables will be set as follows:\

```
name=
mapset=
fullname=
file=
```

The following is a way to test for this case:\

```
if [ ! "$file" ]
then
	exit 1
fi
```

**Vector map example (including error message):**\

```
eval `g.findfile element=vector file="$G_OPT_V_INPUT"`
if [ ! "$file" ] ; then
   g.message -e "Vector map <$G_OPT_V_INPUT> not found"
   exit 1
fi
```

### PYTHON

See *Python* *Scripting Library* for more info.

Note: The Python tab in the *wxGUI* can be used for entering the following code:

```
import grass.script as gcore
gcore.find_file(’elevation’, element = ’cell’)
```

## SEE ALSO

*g.filename,* *g.gisenv,* *g.mapsets,* *g.parser*

## AUTHOR

Michael Shapiro, U.S.Army Construction Engineering Research Laboratory

## SOURCE CODE

Available at: g.findfile source code (history)

Accessed: Monday Feb 24 17:50:29 2025

Main index \| General index \| Topics index \| Keywords index \| Graphical index \| Full index

© 2003-2025 GRASS Development Team, GRASS GIS 8.4.1 Reference Manual
