Como obtenho um caminho absoluto usando o comando find unix


11

Como obter o caminho absoluto usando o comando find.
na verdade, 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 variável $amostrando caminho a partir de, ./Downloads/filenamemas eu quero caminho absoluto /.

Respostas:


16

Use find com um caminho absoluto.

find /path/ -size +20M

Irá imprimir o caminho inteiro.
Se você não conhece o diretório de trabalho, use a substituição de comandos da pwdseguinte maneira:

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

Para obter seu diretório de trabalho

De qualquer forma, parece que Bash homem agora aconselham a usar $()ao longo ``de modo que você deve usar a segunda forma. Você também pode provavelmente se referir diretamente à $PWDvariável que contém o diretório de trabalho do seu script e provavelmente seria mais rápido se você tivesse que usá-lo em um loop.

find "$PWD" -size +20M

Mas não tenho caminho, só tenho. como diretório atual, então?
Shivam Sharma

2
Não comece ., use em $(pwd)vez disso, que lhe dará um caminho completo.
BSD

8

Você pode usar o pwdcomando 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.


Mas um 2 está dando achado: `realpath ': Nenhum tal lima ou diretório
Shivam Sharma

Cantarolar. Talvez você não o tenha instalado, embora seja fornecido pelo coreutilspacote. Tente localizá-lo com which realpath.
Spack

É localizar nada ..
Shivam Sharma

Qual sistema você está usando?
Spack

Linux BANE 3.7-trunk-amd64 # 1 SMP Debian 3.7.2-0 + kali8 x86_64 GNU / Linux
Shivam Sharma

0

Para listar todos os arquivos PNG e JPEG com 7 dias de idade e caminho absoluto.

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

Aqui $PWDserá adicionado a todos os arquivos correspondentes.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.