O que '-t' faz no comando mv? Exemplo abaixo

1
ls -lrt |grep 'Jun 30th' | awk '{print $9}' | xargs mv -t /destinationFolder

Estou tentando mover arquivos de determinada data ou padrão ou createuser. Não funciona corretamente sem a opção -t .

Alguém poderia, por favor, esclarecer o comando xargs -n e -t in move?

    
por Komal-SkyNET 06.07.2016 / 21:45

1 resposta

3

Da página mv man

   -t, --target-directory=DIRECTORY
          move all SOURCE arguments into DIRECTORY
O comportamento padrão do

mv é mover tudo para o último argumento, então quando xargs executa o comando, ele o faz como      mv /destinationFolder pipedArgs sem o -t tentaria mover tudo para o último arg canalizado para xargs. Com o -t você está dizendo explicitamente para movê-lo AQUI.

Da página xargs man

 -n max-args
      Use at most max-args arguments per command line.  Fewer than max-args arguments will be used if the size (see the -s option) is exceeded, unless the -x option is given, in which case xargs will exit.

Normalmente, xargs passará todos os argumentos de uma vez para o comando. Por exemplo

echo 1 2 3 4 |xargs echo
1 2 3 4

executa

echo 1 2 3 4

Enquanto

echo 1 2 3 4 |xargs -n 1 echo

executa

echo 1
echo 2
echo 3
echo 4
    
por 06.07.2016 / 21:51