كيفية نسخ الملفات باستخدام أمر "التثبيت" على نظام Linux
نشرت: 2022-01-29 install
هو أمر متعدد الاستخدامات لنسخ الملفات في Linux و macOS. إنه مثالي للمستخدم القوي الذي يبحث عن الكفاءة. اقرأ هذه المقالة لاكتشاف كيفية العمل بذكاء وليس بجدية أكبر.
انتظر - ليس لتثبيت البرنامج؟
قد يكون لأمر install
الاسم الأكثر تضليلًا لأي من أوامر Linux. لا يقوم بالفعل بتثبيت أي برنامج. إذا كنت تحاول تثبيت حزمة برامج من سطر الأوامر في أوبونتو أو توزيع آخر قائم على دبيان ، فاستخدم الأمر apt-get
. في توزيعات Linux الأخرى ، استخدم أداة إدارة حزم توزيع Linux الخاصة بك بدلاً من ذلك - على سبيل المثال ، dnf
على Fedora أو zypper
على openSUSE.
فماذا تفعل التثبيت؟
باختصار ، يجمع install
بين عناصر من أوامر cp
(نسخة) ، و chown
(تغيير المالك) ، و chmod
(وضع التغيير) ، و mkdir
(إنشاء دليل) ، وأوامر strip
(رموز الشريط). يتيح لك استخدام وظائف من كل هؤلاء في إجراء واحد.
يمكن لأمر install
:
- انسخ الملفات مثل الأمر
cp
. - اختر ما إذا كنت تريد الكتابة فوق الملفات الموجودة.
- أنشئ الدليل الهدف إذا لم يكن موجودًا ، مثل
mkdir
. - قم بتعيين أعلام إذن المستخدم الخاصة بالملفات ، تمامًا مثل الأمر
chmod
. - قم بتعيين مالك الملفات ، تمامًا مثل الأمر
chown
. - قم بإزالة الأمتعة غير الضرورية من الملفات القابلة للتنفيذ ، تمامًا مثل أمر
strip
.
على الرغم من كل هذه الوظائف ، لا يحتوي أمر install
على الكثير من الخيارات لمواجهتها.
متى يمكنك استخدامه
من المحتمل ألا يتم استخدام أمر install
كل يوم. إنه مفيد ، ولكن فقط في مواقف معينة. أحد السيناريوهات التي يأتي فيها install
هو تطوير البرامج. لنفترض أنك تقوم ببرمجة أداة مساعدة جديدة. ستحتاج إلى إجراء اختبار خارج بيئة التطوير. للقيام بذلك ، تحتاج إلى نسخ ملفات البرنامج الجديدة إلى دليل اختبار. قد يلزم إنشاء دليل الاختبار ، وتحتاج إلى تعيين الأذونات والملكية الصحيحة للملفات.
لأن التطوير نشاط تكراري ، يمكن أن ينتهي بك الأمر بالقيام بهذا التسلسل من الإجراءات عدة مرات. يقوم أمر install
بكل الرفع الثقيل نيابة عنك. أخيرًا ، عندما تكون الأداة المساعدة الجديدة جاهزة للنشر ، يمكنك استخدام install
لنسخها بالأذونات الصحيحة إلى موقع عملها النهائي.
مثال
يعمل المبرمج على أداة مساعدة جديدة تسمى ana
. يتكون من ملف ثنائي قابل للتنفيذ وقاعدة بيانات. بعد الاختبار ، يجب نسخه إلى /usr/local/bin
لجميع مستخدمي نظام Linux. ستحتاج إلى استبدال أسماء الملفات ومسارات الدليل في مثالنا بالملفات والمسارات التي تستخدمها على جهاز الكمبيوتر الخاص بك عند استخدام install
.
حتى يصبح جاهزًا للإصدار ، سيتم اختباره في دليل يسمى ~/test/ana
. سيكون أعضاء مجموعة geek
قد قرأوا الأذونات وقاموا بتنفيذها. سيقرأ المستخدمون الآخرون الأذونات وينفذونها أيضًا. يستخدم الأمر install
نفس التمثيل الرقمي للأذونات كما يفعل chmod
. قرر المبرمج لدينا أنه يجب تعيين الأذونات على:
- المالك: القراءة والكتابة والتنفيذ.
- المجموعة: القراءة والتنفيذ.
- الآخرين: تنفيذ فقط.
كيفية استخدام أمر install
دليل عمل المبرمج الخيالي هو ~/work
. لقد كتب البرنامج وجمعه وأنتج ثنائيًا يسمى ana
. لقد أنشأ بالفعل ملف قاعدة البيانات الذي تعمل به ana
، Words.db
. لذلك كلا الملفين جاهزان للاختبار. دعونا نلقي نظرة عليهم:
ls -l ana Words.db
الأداة المساعدة ana
التي كتبها للتو تنشئ الجناس الناقصة من عبارة متوفرة في سطر الأوامر. اختبار التحقق واضح ومباشر.
استدعى ana
بعبارة "بسكويت" ويبدو كل شيء على ما يرام. يريد الآن نسخ هذين الملفين إلى دليل ~/test/ana
لمعرفة ما إذا كانت الأداة المساعدة الجديدة تعمل بشكل صحيح بعيدًا عن بيئة التطوير. يصدر الأمر الآتي:
تثبيت -D -v ana Words.db -t ~ / test / ana
كانت الخيارات المستخدمة في سطر الأوامر:
- د : إنشاء الدلائل ، بما في ذلك الدلائل الأصل ، إذا لزم الأمر.
- v : مطول ، قم بإدراج كل دليل كما تم إنشاؤه وكل نسخة ملف كما يتم إجراؤها.
- ر : الدليل الهدف.
يمكننا أن نرى أن install
ينشئ الدليل ~/test
، ثم ينشئ الدليل ~/test/ana
. يتم سرد الملفات واحدة تلو الأخرى حيث يتم نسخها إلى الدليل الهدف.
يؤكد إدراج الملفات في ~/test/ana
أنه تم نسخها بشكل صحيح.
ls -l
الخطوة التالية هي اختبار الأداة المساعدة ana
عن طريق استدعائها في دليل ~/test/ana
.
تعمل الأداة كما هو متوقع ، وهو أمر رائع. ومع ذلك ، الأذونات غير صحيحة. الشرط هو تعيين أعضاء المجموعة geek
بقراءة الأذونات وتنفيذها ، وأن يقوم المستخدمون الآخرون بالتنفيذ فقط.
يمكننا معالجة هاتين المسألتين بكل بساطة باستخدام الأمر التالي. لاحظ استخدام sudo
لتشغيل الأمر بأذونات الجذر. يتطلب الخياران -o
و -g
والخيارات هذا. سيُطلب منا كلمة المرور عندما نصدر الأمر.
sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~ / test / ana
- يقوم الخيار
-b
(النسخ الاحتياطي) بإنشاء نسخ احتياطية من الملفات قبل الكتابة فوقها. - يحدد الخيار
-S
(اللاحقة) لاحقة ملفات النسخ الاحتياطي. إذا لم تقدم لاحقة ، فسيتم استخدام~
(علامة التلدة). نطلبinstall
لاستخدام لاحقة.bak
. - قمنا بتعيين مالك الملف ليكون
dave
باستخدام الخيار-o
(المالك). - يتطلب الخيار
-g
(مجموعة) اسم المجموعة. تصبح هذه المجموعة المالكة للملفات. المجموعة التي سنستخدمها تسمىgeek
. - يضبط الخيار
-m
(mode) أوضاع الملفات للملفات ، باستخدام صيغةchmod
الرقمية القياسية.
لم نعد بحاجة إلى استخدام الخيار -D
(إنشاء أدلة) ، لأننا نعلم أن دليل الاختبار موجود بالفعل. لقد حذفنا أيضًا الخيار -v
(مطوّل). يوضح لنا سرد الملفات في دليلنا ~/test/ana
تفاصيل الملف:
ls -l
هذا يؤكد أن جميع متطلباتنا قد تم الوفاء بها.
- تم نسخ الملفات عبر دليل الاختبار.
- تم تعيين الأذونات بشكل صحيح.
-
dave
هو صاحب الملفات. - مجموعة
geek
هي مجموعة المالكين للملفين. - تم عمل نسخ احتياطية من كل ملف تسمى ana.bak و Words.db.bak.
كل هذا تم تحقيقه من خلال استخدام أمر واحد. مرتب.
يقوم المبرمج لدينا بإجراء بعض التغييرات النهائية على الأداة ويعيد التجميع. يجب نسخ الملفات التي تم تغييرها إلى دليل ~/test/ana
من دليل ~/work
. يمكننا القيام بذلك باستخدام الخيار -C
(مقارنة). إذا كان الملف المصدر والملف الهدف متماثلين ، فلن يتم نسخ الملف المصدر.
sudo install -C -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~ / test / ana
يوضح لنا سرد الملفات في الدليل الهدف أن حجم ملف ملف ana
قد تغير. إنه أكبر من ملف ana.bak
. تم تغيير الطابع الزمني على ana
أيضًا. هذه التغييرات بسبب نسخ الإصدار الجديد من الملف هنا.
ls -l
لم يتم تغيير حجم الملف والطابع الزمني لملف Words.db
. لم يتم إجراء أي تغييرات على ملف Words.db
، لذلك لم يتم نسخه. في مشروع يحتوي على العديد من الملفات ، يمكن أن يوفر الخيار -C
(مقارنة) الكثير من الوقت وتعطل محرك الأقراص الثابتة ، عن طريق نسخ تلك الملفات التي تم تغييرها فقط.
اختبر المبرمج مرة أخرى أن الأداة المساعدة ana
تستمر في العمل.
حان الوقت لاستخدام install
لنسخ الملفات إلى الدليل /usr/local/bin
. سيؤدي ذلك إلى إتاحة الأداة المساعدة الجديدة لجميع مستخدمي كمبيوتر Linux هذا. نحن نعلم أن /usr/local/bin
موجود ، لذلك لا نحتاج إلى إنشاء هذا الدليل. يمكننا استخدام نسخة معدلة من أمرنا الأخير.
لقد قمنا بتغيير الدليل الهدف ليكون /usr/local/bin
. لقد أزلنا الخيار -C
(مقارنة) لأنه لا توجد نسخ من هذه الملفات في الدليل الهدف حتى الآن ، لذلك لا يوجد ما يمكن مقارنته. وبالمثل ، لا يوجد شيء لنسخه احتياطيًا ، لذلك يمكننا إزالة الخيار -b
(النسخ الاحتياطي) وخيار -S
(اللاحقة).
sudo install -o dave -g geek -m 751 ana Words.db -t / usr / local / bin
يمكننا سرد الملفات التي وصلت في /usr/local/bin
:
ls -l
وكاختبار نهائي ، دعنا نغير الدليل إلى الدليل الرئيسي الخاص بنا ونرى ما إذا كان بإمكاننا استدعاء الأداة المساعدة الجديدة من هناك.
لاحظ أننا لم نكن بحاجة إلى تمهيد الأمر ana
باستخدام ./
مما يعني أنه يعمل من /usr/local/bin
. تمت المهمة.
ذكرنا أن التثبيت يمكن أن يزيل جداول الرموز الزائدة والأمتعة الأخرى من داخل الملف الثنائي ، لتقليل حجمه. لنفعل ذلك الآن. لاحظ أن الأمر أدناه لا يتضمن Words.db. هذا لأن Words.db هو ملف قاعدة بيانات ، وليس ملف ثنائي قابل للتنفيذ. لنسخ وتقليص الملف الثنائي ana
يمكننا استخدام الأمر التالي. لقد أضفنا الخيار -s (تقليص) بحرف "s" صغير. لقد أضفنا مرة أخرى الخيار -b (النسخ الاحتياطي) والخيار -S (اللاحقة) ، بحرف كبير "S."
sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t / usr / local / bin
يتيح لنا سرد الملفات في /usr/local/bin
مقارنة حجم ملف ana
بنسخته الاحتياطية. تم تصغير ملف ana
إلى ما يقرب من 60٪ من حجمه السابق.
ls -l / usr / local / bin
باختصار
يلبي أمر install
استخدامًا مناسبًا جدًا. بالنسبة للعديد من الأشخاص ، لن يتم استخدامه يومًا بعد يوم ، أو ربما من شهر لآخر. على الرغم من ذلك ، يعد أمر install
أداة جيدة يجب أن تكون على دراية بها وامتلاكها في ترسانة من الحيل الخاصة بك. بالنسبة للمناسبات التي تحتاج فيها إلى ذلك ، فإنه يكافئ منحنى التعلم الخاص بك بتعزيز الكفاءة والبساطة وببساطة عدد أقل من ضغطات المفاتيح.
أوامر لينكس | ||
الملفات | tar · pv · cat · tac · chmod · grep · diff _ _ _ _ _ _ _ _ _ _ _ · ذيل · ستات · ls · fstab · صدى · أقل · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · تثبيت · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · تحويل · rclone · shred · srm | |
العمليات | الاسم المستعار · شاشة · أعلى · لطيف · رينييس · تقدم · ستريس · systemd · tmux · chsh · تاريخ · في · دفعة · مجانية · أي · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · نعم · قتل · نوم · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg | |
الشبكات | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · حفر · إصبع · nmap · ftp · curl · wget · who · who · w · iptables · ssh-keygen · ufw |
ذات صلة: أفضل أجهزة كمبيوتر Linux المحمولة للمطورين والمتحمسين