আমি শুধু সম্পর্কে আপনাকে নিশ্চিত করতে পারে না যে ফাইল আছে একটি নাম আছে। এটি কেবল এমন একটি নাম হতে পারে যাতে মুদ্রণযোগ্য অক্ষর থাকে।
যদি rmকাজ না করে, তাহলে আউটপুট ব্যবহার findসঙ্গে -inumএকটি আর্গুমেন্ট হিসাবে বিকল্পে rmসাহায্যের সম্ভাবনা নয়; এটি ঠিক rmএকই সমস্যাটি নিয়ে একই যুক্তি দিয়ে যাচ্ছে ।
এই ডিরেক্টরিতে ফাইলটি একমাত্র, তাই না?
প্রথম জিনিসটি আমি চেষ্টা করেছিলাম cdডিরেক্টরিটি লিখুন rm ./, তারপরে টাইপ করুন , তারপরে ট্যাব কীটি চাপুন। এটি যুক্তিটি ফাইলের প্রকৃত নামের সাথে প্রসারিত করা উচিত এবং পূর্ববর্তীটি যুক্তিটিকে ফাইলের নাম বাদে অন্য কিছু হিসাবে ব্যাখ্যা করা থেকে ./বিরত rmথাকতে হবে।
আরেকটি সমাধান হ'ল cdপিতামাতার ডিরেক্টরিতে, তারপরে ডিরেক্টরিতে rm -r(বা প্রয়োজনে rm -rf) ব্যবহার করুন। নাম নির্বিশেষে ডিরেক্টরি এবং এর সমস্ত সামগ্রী মুছে ফেলা উচিত। এরপরে আপনি mkdirডিরেক্টরিটি পুনরায় তৈরি করতে (এবং সম্ভবত chmodএর অনুমতিগুলি পুনরুদ্ধার করতে) ব্যবহার করতে পারেন ।
সম্পাদনা:
আপনার ls -lbআউটপুটটি আবার দেখে, আমি মনে করি যে ফাইলটির নাম একটি এসসিআইআই DELঅক্ষর দিয়ে শুরু হয় (যা মারাত্মক নয় খারাপ) এবং এতে এক বা একাধিক নতুন লাইন অক্ষর রয়েছে (যা সত্যই খারাপ)। আমি যতদূর বলতে পারি, rmকমান্ডটি কোনও ফাইলের নামের অংশ হিসাবে একটি নতুন লাইনের ব্যাখ্যা করতে পারে না।
কিন্তু unlink()সিস্টেম কল করতে পারেন। এখানে একটি পার্ল স্ক্রিপ্ট আমি একসাথে ছুঁড়েছি যা বর্তমান ডিরেক্টরিতে থাকা ফাইলগুলির মধ্য দিয়ে পুনরাবৃত্তি হবে এবং আপনি এটি অপসারণ করতে চান কিনা তার জন্য প্রত্যেককে আপনাকে জিজ্ঞাসা করব। এটি rmফাইলগুলি সরাতে যেমন কোনও বাহ্যিক কমান্ড ব্যবহার করে না , সুতরাং ফাইল সিস্টেম সমর্থন করে এমন কোনও মজার অক্ষরগুলি হ্যান্ডেল করতে সক্ষম হওয়া উচিত (এএসসিআইআই NULএবং অন্যান্য কিছু /)।
এরকম rm -rবা rm -rfধারণকারী ডিরেক্টরির এখনও কাজ করা উচিত, কিন্তু আপনার এই চেষ্টা করতে পারেন যদি আপনি কেবলমাত্র একটি ফাইল সরাতে চাই।
#!/usr/bin/perl
use strict;
use warnings;
opendir my $DIR, '.' or die ".: $!\n";
my @files = sort grep { -f } readdir $DIR;
closedir $DIR;
foreach my $file (@files) {
my $pfile = printable($file);
print "Remove $pfile? ";
my $answer = scalar <STDIN>;
if ($answer =~ /^[Yy]/) {
print "Removing $pfile\n";
unlink $file or warn "Unable to remove $pfile: $!\n";
}
}
sub printable {
my($s) = @_;
$s =~ s/[^ -~]/?/g;
return $s;
}
(আর একটি সমাধান, যদি আপনি যে ডিরেক্টরিতে রাখতে চান সেই ডিরেক্টরিতে অন্য ফাইলগুলি থাকে, তবে অন্য সমস্ত ফাইলকে একটি অস্থায়ী ডিরেক্টরিতে স্থানান্তর করা হবে, তারপরে ডিরেক্টরিটি পুনরায় তৈরি করুন এবং অন্যান্য ফাইলগুলি আবার সরিয়ে ফেলুন))
(ওহ, এবং আপনি যে ফাইলটি তৈরি করতে যা কিছু করেছেন তা আবার না করার চেষ্টা করুন!)
\177ASCIIDELচরিত্র।