Jak uzyskać bezwzględną ścieżkę przy użyciu polecenia find unix


11

Jak uzyskać bezwzględną ścieżkę za pomocą polecenia find.
właściwie uruchamiam następujący skrypt: -

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

ale tutaj zmienna $apokazuje ścieżkę zaczynającą się od, ./Downloads/filenameale chcę ścieżkę bezwzględną /.

Odpowiedzi:


16

Użyj find z absolutną ścieżką.

find /path/ -size +20M

Wydrukuje całą ścieżkę.
Jeśli nie znasz katalogu roboczego, skorzystaj z podstawiania poleceń w pwdtaki sposób:

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

Aby uzyskać katalog roboczy

W każdym razie wydaje się, że człowiek Bash teraz radzę używać $()ponad ``więc należy użyć drugiego formularza. Prawdopodobnie możesz również odwołać się bezpośrednio do $PWDzmiennej zawierającej katalog roboczy skryptu i prawdopodobnie byłoby to szybsze, gdybyś musiał użyć w pętli.

find "$PWD" -size +20M

Ale nie mam ścieżki, mam tylko. jako bieżący katalog?
— Shivam Sharma

2
Nie zaczynaj od ., użyj $(pwd)zamiast tego, co da ci pełną ścieżkę.
— bsd

8

Możesz użyć pwdpolecenia lub wydrukować plik realpath:

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

Oba polecenia naprawdę dają absolutną ścieżkę do plików.


Ale drugi podaje find: `realpath ': Nie ma takiego pliku ani katalogu
— Shivam Sharma

Szum. Być może nie masz go zainstalowanego, chociaż zapewnia go coreutilspakiet. Spróbuj go zlokalizować which realpath.
— Spack

Nic nie lokalizuje ...
— Shivam Sharma

Z jakiego systemu korzystasz?
— Spack

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

0

Aby wyświetlić listę wszystkich plików PNG i JPEG, które mają 7 dni z bezwzględną ścieżką.

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

Tutaj $PWDzostanie dodany do każdego dopasowanego pliku.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.