Well I would be tempted to do something like this instead, making the entire operation a single command.
find /home/domain/imap/domain.com/ -mtime +190 \
\( -ipath '*/Maildir/new/*' -o -ipath '*/Maildir/cur/*' \) \
-delete
Let us suppose that we have file1
in the current directory. Then:
$ find . -maxdepth 0 -name "file1"
$ find . file1 -maxdepth 0 -name "file1"
file1
Now, let's look at what the documentation states:
-maxdepth 0
means only apply the tests and actions to the command line arguments.
In my first example above,
only the directory .
is listed on the command line. Since .
does not have the name file1
, nothing is listed in the output. In my second example above, both .
and file1
are listed on the command line,
and, because file1
matches -name "file1"
, it was returned in the output.
In other words, -maxdepth 0
means do not search directories or subdirectories. Instead, only look for a matching file among those explicitly listed on the command line.
In your examples, only directories were listed on the command line and none of them were named file1
. Hence, no output.
In general, many files and directories can be named on the command line.
For example, here we try a find
command
with nine files and directories on the command line:
$ ls
d1 file1 file10 file2 file3 file4 file5 file6 file7
$ find d1 file1 file10 file2 file3 file4 file5 file6 file7 -maxdepth 0 -name "file1"
file1
Overlapping paths
Consider:
$ find . file1 -maxdepth 0 -iname file1
file1
$ find . file1 file1 -maxdepth 0 -iname file1
file1
file1
$ find . file1 file1 -maxdepth 1 -iname file1
./file1
file1
file1
find
will follow each path specified on the command line and look for matches even if the paths lead to the same file, as in . file
,
or even if the paths are exact duplicates, as in file1 file1
.
Best Answer
If you read the message it tells you that you have used
-maxdepth
after-type
. The point is that-maxdepth
is a global option (others include-xdev
to avoid searches crossing mount points and-noleaf
which stops find assuming that directories have standard unix link counts) and-type
is part of an expression.If you swap the order of
-type f
and-maxdepth 8
the message will go away.