Як отримати абсолютний шлях за допомогою команди find unix


11

Як отримати абсолютний шлях за допомогою команди find.
насправді я запускаю такий сценарій: -

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

але тут змінна, що $aпоказує шлях, починаючи з, ./Downloads/filenameале я хочу абсолютний шлях від /.

Відповіді:


16

Використовуйте знахідку з абсолютним шляхом.

find /path/ -size +20M

Це надрукує весь шлях.
Якщо ви не знаєте робочого каталогу, тоді використовуйте заміну команд для pwdцього:

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

Щоб отримати робочий каталог

Так чи інакше, здається, що чоловікові Баша тепер радять вживати $()більше, ``тому вам слід використовувати другу форму. Ви також можете, ймовірно, звернутися безпосередньо до $PWDзмінної, яка містить робочий каталог вашого сценарію, і це було б, ймовірно, швидше, якщо вам доведеться використовувати в циклі.

find "$PWD" -size +20M

Але я не маю шляху, я маю тільки. як поточний каталог тоді?
Шівам Шарма

2
Не починайте з цього, а скоріше .використовуйте $(pwd), що дасть вам повний шлях.
bsd

8

Ви можете скористатися pwdкомандою або роздрукувати файл realpath:

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

Обидві команди реально дають вам абсолютний шлях до файлів.


Але другий - це знахідка: `realpath ': Немає такого файлу чи каталогу
Shivam Sharma

Гул. Можливо, у вас його не встановлено, хоча це передбачено coreutilsпакетом. Спробуйте знайти його which realpath.
Spack

Тут не знайдено нічого ..
Shivam Sharma

Яку систему ви використовуєте?
Spack

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

0

Перелічити всі файли PNG та JPEG, які мають 7 днів із абсолютним шляхом.

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

Тут $PWDбуде додано кожен відповідний файл.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.