Você está nos mostrando a saída de
find . -maxdepth 1 -mtime -3 -print0
Qual é a saída de
find . -maxdepth 1 -mtime -3 -print0 | grep -z loader
Não vejo nenhum nome de arquivo contendo a palavra loader
na saída que você mostrou.
Se a saída do grep
(que é a entrada para xargs
) não é nada,
então, naturalmente, nada será copiado.
Além disso,
- Em vez de
find … | grep foo
, você pode dizerfind … -name "*foo*"
e salvar um processo.
Exceto:I notice that you used
-maxdepth 1
, which (as you know) restricts the search to the current directory. Without that,find
would look into subdirectories, andfind … | grep foo
would give you all files in any subdirectory namedfood_fight
,football
, orpound_foolish
, regardless of the file's name, since thegrep
would be looking at the entire (.
-relative) pathname, rather than just the filename. -
-maxdepth 1
não impede quefind
do relatório os nomes dos subdiretórios no diretório atual - Então, se você tivesse um subdiretório chamadoloader
(ouother_loader_files
), seu nome seria passado paracp
- o que seria apenas uma mensagem de erro, já que você não dissecp -r
, mas pode haver situações semelhantes em que você pode pegá-lo de surpresa e fazer algo desagradável. - Você pode evitar o problema acima (potencial) dizendo
-type f
. -
Eu percebo que você usou
-mtime -3
, que (como você sabe) restringe a pesquisa com base na data de modificação. Observe que, se você não estava usando um teste de restrição de pesquisa como-mtime -3
ou-type f
, usarfind … -maxdepth 1
é praticamente equivalente a usar um curinga (comumente conhecido como "glob" ou um padrão de expansão de nome de arquivo), como emcp -t ./user_name_tutorial/ *loader*
ou
cp *loader* ./user_name_tutorial/