আমি শুধু সম্পর্কে আপনাকে নিশ্চিত করতে পারে না যে ফাইল আছে একটি নাম আছে। এটি কেবল এমন একটি নাম হতে পারে যাতে মুদ্রণযোগ্য অক্ষর থাকে।
যদি 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;
}
(আর একটি সমাধান, যদি আপনি যে ডিরেক্টরিতে রাখতে চান সেই ডিরেক্টরিতে অন্য ফাইলগুলি থাকে, তবে অন্য সমস্ত ফাইলকে একটি অস্থায়ী ডিরেক্টরিতে স্থানান্তর করা হবে, তারপরে ডিরেক্টরিটি পুনরায় তৈরি করুন এবং অন্যান্য ফাইলগুলি আবার সরিয়ে ফেলুন))
(ওহ, এবং আপনি যে ফাইলটি তৈরি করতে যা কিছু করেছেন তা আবার না করার চেষ্টা করুন!)
\177
ASCIIDEL
চরিত্র।