Como faço para obter caminho absoluto usando o comando find unix

10

Como obter um caminho absoluto usando o comando find.
na verdade eu estou executando o seguinte script: -

find . -size +20M | while read a
do
     i=$(echo $a | sed 's:/: :g')
     echo $a;
     j=($i)
     fileName=${j[${#j[@]}-1]}
     userName=${j[${#j[@]}-3]}
done

mas aqui a variável $a mostrando o caminho a partir de ./Downloads/filename , mas quero o caminho absoluto de / .

    
por Shivam Sharma 21.04.2014 / 11:28

3 respostas

16

Use a localização com um caminho absoluto.

find /path/ -size +20M

Ele imprimirá todo o caminho.
Se você não conhece o diretório de trabalho, use a substituição de comando para pwd da seguinte forma:

find "'pwd'" -size +20M 
   #or like this:
find "$(pwd)" -size +20M

Para obter seu diretório de trabalho

De qualquer forma, parece que o homem do Bash agora recomenda usar $() over '' , então você deve usar o segundo formulário. Você também pode se referir diretamente à variável $PWD que contém o diretório de trabalho do seu script e provavelmente seria mais rápido se você tivesse que usar em um loop.

find "$PWD" -size +20M
    
por 21.04.2014 / 11:36
8

Você pode usar o comando pwd ou imprimir o arquivo realpath :

$ find "$(pwd)" -size +20M
$ find . -size +20M -exec realpath {} +

Ambos os comandos reais fornecem o caminho absoluto para os arquivos.

    
por 21.04.2014 / 11:50
0

Para listar todos os arquivos PNG e JPEG com 7 dias de duração com o caminho absoluto.

$ find $PWD/ -mtime -7 -print -exec grep -e ".png\|.jpg" {} \;

Aqui $PWD será adicionado a todos os arquivos correspondentes.

    
por 29.06.2016 / 12:36