سمة ملف BASH الجمباز:كيف يمكنني بسهولة الحصول على ملف بالمسارات والامتيازات الكاملة؟

StackOverflow https://stackoverflow.com/questions/2254370

  •  20-09-2019
  •  | 
  •  

سؤال

عزيزي سادة سطر الأوامر،

لدي شجرة دليل أريد إنشاء ملف يحتوي على إدخالين في كل سطر:المسار الكامل لكل ملف والامتيازات المقابلة للملف المذكور.

على سبيل المثال، قد يحتوي سطر واحد على:

/v1.6.0.24/lib/mylib.jar -r-xr-xr-x

يبدو أن أفضل طريقة لإنشاء العمود الأيسر موجودة يجد.ومع ذلك، لأن ليرة سورية لا يبدو أن لديه القدرة على قراءة قائمة أسماء الملفات أو أخذ stdin، يبدو أنني يجب أن ألجأ إلى برنامج نصي يقوم بذلك نيابةً عني....مرهق.

كنت متأكدًا من أنني رأيت أشخاصًا بطريقة أو بأخرى يعثرون على تشغيل أمر مقابل كل ملف يتم العثور عليه، لكن لا بد أنني أشعر بالسخافة هذا الصباح لأنني لا أستطيع اكتشاف ذلك على ما يبدو!

أي واحد؟

فيما يتعلق بقراءة الملف المذكور، قد تكون هناك مسافات في أسماء الملفات، لذلك سيكون من الرائع بالتأكيد أن تكون هناك طريقة للحصول على بعض أدوات سطر الأوامر الموجودة لحساب الحقول من اليمين إلى اليسار. على سبيل المثال، لدينا يقطع.لكن، يقطع هو اليسار أولاً ولن يأخذ رقمًا سالبًا ليعني بدء الترقيم على اليمين (كما يبدو بناء الجملة الأكثر وضوحًا بالنسبة لي)....دون الحاجة إلى كتابة برنامج للقيام بذلك، هل هناك أي طرق سهلة؟

شكرًا مقدمًا، وشكرًا خاصًا لتوضيح أي أمثلة قد تقدمها!

شكرا ، RT

هل كانت مفيدة؟

المحلول

جنو findutils 4.2.5+:

find -printf "$PWD"'/%p %M\n'

نصائح أخرى

stat -c %A file

سيتم طباعة أذونات الملف للملف.

شيء مثل:

find . -exec echo -ne '{}\t\t' ';' -exec stat -c %A {} ';'

سوف أعطيك نسخة سيئة التنسيق لما تريد بعده.

لقد أصبح الأمر أكثر صعوبة لأنك تريد محاذاة كل شيء في الجداول.قد ترغب في إلقاء نظرة على أمر "العمود".TBH أود فقط تخفيف متطلبات الإخراج الخاصة بي قليلاً.يعد تنسيق الإخراج في SH بمثابة ألم في المؤخرة.

ويمكن أيضًا تنفيذ ذلك باستخدام ls و awk :

ls -l -d $PWD/* | awk '{print $9 " " $1}' > my_files.txt

باش 4

shopt -s globstar
for file in /path/**
do
    stat -c "%n %A" "$file"
done
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top