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,findwould look into subdirectories, andfind … | grep foowould give you all files in any subdirectory namedfood_fight,football, orpound_foolish, regardless of the file's name, since thegrepwould be looking at the entire (.-relative) pathname, rather than just the filename. -
-maxdepth 1não impede quefinddo 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 -3ou-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/