Похоже, что вы хотите grep
по именам файлов, но если вы это сделаете:
find ./ -mindepth 1 -type f -mtime +60 -print0 | xargs -0 egrep -vZ 'vvv|iii'
xargs
на самом деле представляет список файлов, выходящих из find
в качестве аргумента к egrep
.
Что нужно сделать, чтобы обработать вход, завершенный NUL (из -print0
)
find ./ -mindepth 1 -type f -mtime +60 -print0 | xargs -0 grep -EvzZ 'vvv|iii'
(egrep
является устаревшим, поэтому я изменил его на grep -E
)
Из man grep
:
-z, --null-data
Treat the input as a set of lines, each terminated by a zero
byte (the ASCII NUL character) instead of a newline. Like the
-Z or --null option, this option can be used with commands like
sort -z to process arbitrary file names.
-Z, --null
Output a zero byte (the ASCII NUL character) instead of the
character that normally follows a file name.
Итак, вам нужны оба -z
и -Z
В приведенных вами инструкциях указано:
wget http://www.eng.lsu.edu/mirrors/apache/maven/maven-3/3.2.3/binaries/apache-maven-3.2.3-bin.zip
unzip apache-maven-3.2.3-bin.zip
mv apache-maven-3.2.3/ /opt/maven
В результате /opt/maven/bin
, /opt/maven/lib
и др.
То, что вы сделали, немного отличается:
wget http://www.eng.lsu.edu/mirrors/apache/maven/maven-3/3.3.1/binaries/apache-maven-3.3.1-bin.zip
unzip apache-maven-3.3.1-bin.zip
mkdir /opt/maven
mv apache-maven-3.3.1/ /opt/maven
В результате /опт/мавэн/апаче-мавэн-3.3.1/бин
, /опт/мавэн/апаче-мавэн-3.3.1/либ
и т.д. и т.п.
При выполнении mv x /y/z
, где x - каталог, могут произойти три разные вещи:
/y/z
еще не существует, то все дерево, корни которого находятся в x
, переносится в /y/z
. /y/z
уже существует и является каталогом, то дерево перемещается в /y/z/x
. /y/z
уже существует и не является каталогом, то mv
выдаст сообщение об ошибке и ничего не сдвинет.