ম্যাক থেকে একটি লিনাক্স সার্ভারে ফাইল স্থানান্তরিত করার পরে যেগুলি পায় সেগুলি ._ এবং .ডিএসএসটিস্টোর ফাইলগুলি মুছে ফেলার জন্য কারও কাছে কি সমাধান আছে?
একটি সূচনা ডিরেক্টরি নির্দিষ্ট করুন এবং এটি যেতে দেওয়া? লাইক / ভার / www / এইচটিএমএল / ডাউন ...
ম্যাক থেকে একটি লিনাক্স সার্ভারে ফাইল স্থানান্তরিত করার পরে যেগুলি পায় সেগুলি ._ এবং .ডিএসএসটিস্টোর ফাইলগুলি মুছে ফেলার জন্য কারও কাছে কি সমাধান আছে?
একটি সূচনা ডিরেক্টরি নির্দিষ্ট করুন এবং এটি যেতে দেওয়া? লাইক / ভার / www / এইচটিএমএল / ডাউন ...
উত্তর:
ডিরেক্টরিতে পরিবর্তন করুন এবং ব্যবহার করুন:
find . -name ".DS_Store" -print0 | xargs -0 rm -rf
find . -name "._*" -print0 | xargs -0 rm -rf
পরীক্ষিত নয়, প্রথমে xargs ছাড়া তাদের চেষ্টা করুন!
আপনি ডিরেক্টরিটি প্রথমে ডিরেক্টরিতে পরিবর্তন না করে সন্ধানের পরে পিরিয়ডটি প্রতিস্থাপন করতে পারেন।
find /dir/here ...
-delete
করে যা এটি সংক্ষিপ্ত করতে পারে। @ জেটি: এটি পুনরাবৃত্তির অধীনে অনুসন্ধান করে .
। সেখানে কতগুলি ফাইল এবং উপ-ডিরেক্টরি রয়েছে তার উপর নির্ভর করে ... আপনি কেবল তাদের আপলোড হতে বাধা দিতে পারবেন না?
-r
আপনি কোনও ডিরেক্টরি মুছতে চান না সেজন্য (পুনরাবৃত্ত) পতাকাটি ব্যবহার করার পরামর্শ দেওয়া হচ্ছে না
command rm
চেয়ে ভাল (যেটি আরও সরাসরি) সমাধান হতে পারে না ? ("ডাইরেক্ট" দ্বারা আমি বোঝাতে চাইছি এটি বিশেষত সমস্যা এবং অন্য কোনও কিছুর সাথেই কাজ করে এবং তাই কোনও অনাকাঙ্ক্ষিত পার্শ্ব-প্রতিক্রিয়া হওয়ার সম্ভাবনা কম থাকে এবং যে কেউ কোডটি বজায় রাখতে হয় তার কাছে আরও স্ব-ব্যাখ্যামূলক হতে চলেছে) পরে।)
আরও নতুন সন্ধানকারী সমর্থন করে -delete
, তাই:
find . -name ".DS_Store" -delete
-print
মুছে ফেলার একটি তালিকা পেতে যোগ করুন ।
আপনার কাছে একটি আপ-টু-ডেট পসিক্স সিস্টেম থাকলে কমান্ড আপনার পক্ষে কাজ করবে, আমি বিশ্বাস করি। কমপক্ষে এটি OS X 10.8 এ আমার জন্য কাজ করে এবং অন্যদের জন্য কাজ করে যারা ম্যাকোস 10.12 (মোজাভে) এ পরীক্ষা করেছেন।
@ এক্স-ইয়েশন-এর পোস্টে দেওয়া মন্তব্যে @ প্রেফিয়েন্টকে ক্রেডিট করুন (ভেবেছিলেন এটির নিজের উত্তরটি প্রমাণ করার পক্ষে যথেষ্ট সহায়ক)।
find
ডিফল্টরূপে বর্তমান ওয়ার্কিং ডিরেক্টরিতে পুনরাবৃত্তি হয়।
.
ম্যাকোএস 10.12 (সিয়েরা) এ থাকা দরকার।
সাধারণ আদেশ:
rm `find ./ -name '.DS_Store'` -rf
rm `find ./ -name '._'` -rf
শুভকামনা!
rm -i
খোঁজ ./ -name '* py'` -rf , which did NOT prompt me to delete files. you will need to take it on the end (i.e.
-rfi`)। আমার ব্যাকআপ স্ক্রিপ্টের জন্য Thankশ্বরের ধন্যবাদ Thank
-bash: /bin/rm: Argument list too long
cd /var/www/html && find . -name '.DS_Store' -print0 | xargs -0 rm
cd /var/www/html && find . -name '._*' -print0 | xargs -0 rm
আপনি বাশের পরিবর্তে zsh এ পরিবর্তন করতে পারেন। এটি আপনাকে ডিরেক্টরি বৃক্ষের যে কোনও জায়গায় ফাইলগুলি মেলানোর জন্য ** ব্যবহার করতে দেয়:
$ rm /var/www/html/**/_* /var/www/html/**/.DS_Store
আপনি এগুলিকে এগুলি একত্রিত করতে পারেন:
$ rm /var/www/html/**/(_*|.DS_Store)
জ্যাশ-এর আরও অনেকগুলি বৈশিষ্ট্য রয়েছে যা বাশের অভাব রয়েছে, তবে এটি একাই স্যুইচ করার জন্য উপযুক্ত। এটি বেশিরভাগ (সম্ভবত সমস্ত) লিনাক্স ডিস্ট্রোসের পাশাপাশি সাইগউইন এবং ওএস এক্সে পাওয়া যায়
আপনি zsh সাইটে আরও তথ্য পেতে পারেন ।
**
খুব সমর্থন করে :-) (যদিও এটি ডিফল্টরূপে নয়, shopt -s globstar
সেট করা দরকার)
find . -name "FILE-TO-FIND"-exec rm -rf {} \;
find
এটি সমর্থন করে এমন একটি থাকে তবে তা +
হ'ল এক্সার্গ্সের মতো: find . -name "FILE-TO-FIND" -exec rm -rf {} +
- (এছাড়াও, আপনি এর আগেও কোনও জায়গা মিস করছেন -exec
)
"Thumbs.db" পুনরাবৃত্তভাবে মোছার উদাহরণ;
find . -iname "Thumbs.db" -print0 | xargs -0 rm -rf
দ্বারা বৈধকরণ:
find . -iname "Thumbs.db"
এটি এখন, বর্তমান পথের অভ্যন্তরে "থাম্বস.ডিবি" দিয়ে কোনও এন্ট্রি প্রদর্শন করা উচিত নয়।
xargs
এবং print0
তার পরিবর্তে exec
(কারণ রয়েছে)।
এই উত্তরের -প্রিন্ট যুক্ত করে কী সরিয়ে দিচ্ছে তা আরও ভাল
find /var/www/html \( -name '.DS_Store' -or -name '._*' \) -delete -print
আপনার যদি বাশ 4.0 ++ থাকে
#!/bin/bash
shopt -s globstar
for file in /var/www/html/**/.DS_Store /var/www/html/**/._
do
echo rm "$file"
done
কয়েকটি বিষয় লক্ষণীয়:
'-ডিলিট' পুনরাবৃত্ত হয় না। সুতরাং .TemporaryItems (ফোল্ডার) এর মধ্যে ফাইল থাকলে কমান্ডটি ব্যর্থ হয়।
ম্যাকস: .ডিএসএসটোর ._। ডিএসএসটোোর। টেম্পোরারি আইটেমস .এপডিস্ক দ্বারা নির্মিত এই প্রচুর সমস্যাযুক্ত ফাইল রয়েছে
এই এক কমান্ডটি তাদের সকলকে সম্বোধন করে। একাধিক ম্যাচের জন্য বার বার অনুসন্ধান চালানো থেকে বাঁচায়।
find /home/foo \( -name '.DS_Store' -or -name '._.DS_Store' -or -name '._*' -or -name '.TemporaryItems' -or -name '.apdisk' \) -exec rm -rf {} \;
এটিও কাজ করে:
sudo rm -rf 2018-03-*
এখানে আপনার ফাইলগুলি মুছে ফেলা ফর্ম্যাটটির নামগুলি সহ 2018-03- (অন্য কিছু)
সহজবোধ্য রাখো
sudo
বা rm
আপনার উত্তর প্রসঙ্গে কীভাবে কাজ করে আপনি কোনও তথ্য সরবরাহ করেন না।