COMPUTR, U HAS FILE. I CAN HAS IT?
icanhasfile is a Python module that helps you locate and operate on files using glob searches.
Run the following command to install icanhasfile:
$ pip install --pre icanhasfile
To get the help dialog, run one of the following commands:
$ icanhasfile --help $ icanhasfile -h $ icanhasfile -?
The general command syntax is below. For a list of options, see the help dialog. In the first form, you provide an explicit path to search; in the second, the search is executed in the current directory.
$ icanhasfile [options] <path> <filepattern> $ icanhasfile [options] <filepattern>
As an example, let's say we have the following directory structure:
+-- pom.xml +-- LICENSE.txt | +-- dir1/ | | | \-- pom.xml | +-- dir2/ | | | +-- assembly.xml | +-- pom.xml | \-- version.txt | +-- dir3/ | \-- context.xml
If you are searching for pom.xml and want to give the absolute path to the top-level directory, issue the command below. You will be prompted to choose from three matching files:
$ icanhasfile /path/to/top-level/dir pom.xml  pom.xml  dir1/pom.xml  dir2/pom.xml Choose a number (q to quit):
If you are already in the top-level directory and are searching for pom.xml, issue the command below. You will be prompted to choose from three matching files:
$ icanhasfile pom.xml  pom.xml  dir1/pom.xml  dir2/pom.xml Choose a number (q to quit):
If you are already in the top-level directory and are searching for all xml files, issue the command below. You will be prompted to choose from five matching files:
$ icanhasfile '*.xml'  pom.xml  dir1/pom.xml  dir2/assembly.xml  dir2/pom.xml  dir3/context.xml Choose a number (q to quit):
By default, the selected file will be opened using your $EDITOR. However, you can also provide a --command option to use a different command on your path. In the example below, we will just cat out the file. Also, as it is run in the icanhasfile source directory and there is only a single matching file, the file is cat'd without asking the user to choose from multiple matching files:
$ icanhasfile.py --command cat . MANIFEST.in include LICENSE.txt include README.rst