Gostaria de fazer algo assim para mover os dois últimos arquivos baixados:
mv ` ls -rt ~/Downloads/ | tail -2 ` .
Infelizmente, ls
apenas fornece os nomes dos arquivos. Como posso adaptar o código acima?
(Antes que alguém aponte, estou ciente dos problemas de canalizar a saída de ls
. Eu só usaria isso quando conhecer os nomes de arquivos em questão.)
find
vez disso.Respostas:
Ok, então se você não desistir
ls
, tente pelo menos deixar o hábito de usar reticulares para tudo, especialmente quandoxargs
for um ajuste melhor:fonte
xargs
me agrada mais do que as costas. Mas há alguma razão técnica para preferir essa sequência de tubos e nãoxargs
o uso de reticulas ou isso é apenas uma questão de gosto?ls
xargs -0
ls
é desencorajado: mywiki.wooledge.org/ParsingLsVocê pode usar o GNU
find
lá:As
find -printf
opções:%Ts
para exibir a hora como época%p
o caminho do arquivoVejo
man find | less +/'^ *-printf'
editar
se você precisar lidar com espaços em nomes de arquivos, recomendo esta outra solução:
fonte
find -printf
opções-f2-
vez de-f2
como uma opçãocut
? Para que serve o segundo traço?man cut
, imprime até o fim, se houver mais de uma coluna.Use em
ls -rt ~/Downloads/*
vez dels -rt ~/Downloads/
. Nols -rt ~/Downloads/*
argumento, a string é expandida primeiro pelo shell (isso é chamado de globbing do nome do arquivo ). Portanto, você obtém uma lista de caminhos como argumentos para ols -rt
comando, que o classifica da maneira que você especificar pelas opções dels
. Por outro lado, o comandols -rt ~/Downloads/
lê o conteúdo do diretório~/Downloads/
. Esta é uma lista de arquivos sem o caminho do diretório.fonte
Com zsh:
A
(...)
parte é chamada de qualificadores de globbing , um dos principais recursos dozsh
. Cada qualificador (geralmente caracteres únicos) permite filtrar as entradas correspondentes com base nos atributos dos arquivos (tipo, tamanho, hora ...), alterar a ordem em que eles são expandidos ou modificar como eles são expandidos.Acima, temos:
.
(ponto): selecione apenas arquivos regulares (não diretórios, links simbólicos ...)om
: O rder a lista por m tempo ODIFICAÇÃO.[1,2]
: selecione apenas as duas primeiras entradas.Observe também que o comando falhará se não houver correspondência (onde outros shells poderiam acidentalmente mover o arquivo / diretório errado).
fonte