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.