I am running the following command in order to find all files/directories that do not have anything to do with "flash_drive_data":
find . -not -path './flash_drive_data*' | grep "./*flash*"
There are a few things which I tried that are confusing me:
1. When I run the above command, I get a few "partial" hits (i.e they do not completely match the *flash*
pattern. For example:
./.local/lib/python3.7/site-packages/jedi/third_party/typeshed/third_party/2and3/flask
./.local/lib/python3.7/site-packages/jedi/third_party/typeshed/third_party/2and3/flask/cli.pyi
./.local/lib/python3.7/site-packages/jedi/third_party/typeshed/third_party/2and3/flask/signals.pyi
./.local/lib/python3.7/site-packages/jedi/third_party/typeshed/third_party/2and3/flask/templating.pyi
./.local/lib/python3.7/site-packages/jedi/third_party/typeshed/third_party/2and3/flask/sessions.pyi
./.local/lib/python3.7/site-packages/jedi/third_party/typeshed/third_party/2and3/flask/json
./.local/lib/python3.7/site-packages/jedi/third_party/typeshed/third_party/2and3/flask/json/tag.pyi
The 3/flas
at the end is being highlighted.
2. When I replaced grep "*flash*"
with just grep "*"
, I expected to get all files returned by find, but I got none. Why? Then, when I did grep "**"
I believe I got all the files (or at least I think I did). Again, why is that?
3. Finally, the objective of what I was doing above was to make sure that when I ran find . -not -path './flash_drive_data*'
I was getting nothing related to flash_drive_data. It seemed like I did (with some unexpected behavior with grep as I explained above). However, when I ran:
find . -not -path './flash_drive_data*' -exec tar cfv home.tar.bz '{}' +
I was getting output including things like:
./flash_drive_data/index2/ask-sdk-core/dist/dispatcher/error/handler/
so flash_drive_data files were being included.
*
is not a wildcard in grep - it's a regular expression quantifierk
in3/flask
is not highlighted.echo ./.local/lib/python3.7/site-packages/jedi/third_party/typeshed/third_party/2and3/flask/cli.pyi | grep "*flash*"
gives output on your machine? That should return nothing since*flash*
is invalid (the first*
isn't quantifying anything). Are you sure thatgrep "*flash*"
was returning the output you show? Were you perhaps usinggrep ".flash*
instead?