كيف تحصل على المسار الكامل للملف؟

سئل على ١٠ مارس ٢٠١١  ·  تمت مشاهدة 1M مرة  ·  مصدر

Jean picture
في ١٠ مارس ٢٠١١

هل هناك طريقة سهلة يمكنني من خلالها طباعة المسار الكامل لـ file.txt ؟

file.txt = /nfs/an/disks/jj/home/dir/file.txt

<command>

dir> <command> file.txt  

يجب أن تطبع

/nfs/an/disks/jj/home/dir/file.txt

الإجابات

filmor picture
في ١٠ مارس ٢٠١١
1273

استخدم readlink :

readlink -f file.txt
lllllllllllll picture
في ٤ نوفمبر ٢٠١٤
248

أفترض أنك تستخدم Linux.

لقد وجدت أداة تسمى realpath في coreutils 8.15.

realpath file.txt
/data/ail_data/transformed_binaries/coreutils/test_folder_realpath/file.txt

وفقًا لتعليقات @ styrofoam-fly و @ arch-standton ، لا يتحقق realpath بمفرده من وجود الملف ، لحل هذه المشكلة أضف الوسيطة e : realpath -e file

ZeRemz picture
في ١٠ مارس ٢٠١١
81

عادة ما يؤدي ما يلي الحيلة:

 echo "$(cd "$(dirname "$1")" && pwd -P)/$(basename "$1")"
jcomeau_ictx picture
في ١٠ مارس ٢٠١١
44

أعلم أن هناك طريقة أسهل لذلك ، لكنني أتحسس إذا تمكنت من العثور عليها ...

[email protected]:~$ python -c 'import os; print(os.path.abspath("cat.wav"))'
/home/jcomeau/cat.wav

[email protected]:~$ ls $PWD/cat.wav
/home/jcomeau/cat.wav
Anshul Gupta picture
في ١ يوليو ٢٠١٣
28
find $PWD -type f | grep "filename"

أو

find $PWD -type f -name "*filename*"
Steven picture
في ١٤ مارس ٢٠١٥
18

إذا كنت في نفس الدليل مثل الملف:

ls "`pwd`/file.txt"

استبدل file.txt باسم الملف المستهدف.

Natesh bhat picture
في ١٥ أغسطس ٢٠١٧
17

على نظام Windows:

  • يمنحك الضغط على Shift والنقر بزر الماوس الأيمن على ملف في Windows Explorer خيارًا يسمى Copy as Path . سيؤدي هذا إلى نسخ المسار الكامل للملف إلى الحافظة.

على نظام Linux:

  • يمكنك استخدام الأمر realpath yourfile للحصول على المسار الكامل لملف كما اقترحه الآخرون.
Adam Matan picture
في ١١ ديسمبر ٢٠١٣
5

يمكنك استخدام البرنامج النصي fpn (اسم المسار الكامل) :

% pwd
/Users/adamatan/bins/scripts/fpn

% ls
LICENSE   README.md fpn.py

% fpn *
/Users/adamatan/bins/scripts/fpn/LICENSE
/Users/adamatan/bins/scripts/fpn/README.md
/Users/adamatan/bins/scripts/fpn/fpn.py

fpn ليست حزمة لينكس قياسية ، لكنها مشروع جيثب مجاني ومفتوح ويمكنك إعداده في دقيقة واحدة .

Lord Cat picture
في ٢١ ديسمبر ٢٠١٦
4

أعلم أن هذا سؤال قديم الآن ، ولكن فقط لإضافة المعلومات هنا:

يمكن استخدام الأمر Linux which للعثور على مسار الملف لملف الأوامر ، على سبيل المثال

$ which ls
/bin/ls

هناك بعض المحاذير لذلك ؛ يرجى الاطلاع على https://www.cyberciti.biz/faq/how-do-i-find-the-path-to-a-command-file/ .

Bhargav Srinivasan picture
في ١٩ يوليو ٢٠١٧
4

يعمل على أنظمة Mac و Linux و * nix:

سيعطيك هذا ملف csv مقتبس لجميع الملفات في الدليل الحالي:

ls | xargs -I {} echo "$(pwd -P)/{}" | xargs | sed 's/ /","/g'

يمكن نسخ ناتج هذا بسهولة في قائمة بيثون أو أي بنية بيانات مماثلة.