আমার একটা আপেক্ষিক পথ আছে
$base_path = "input/myMock.TGZ";
myMock.TGZ
ইনপুট ফোল্ডারে অবস্থিত ফাইলের নাম। ফাইলের নাম পরিবর্তন করতে পারে। তবে পথটি সর্বদা সঞ্চিত থাকে $base_path
।
আমার ফাইলটি আছে কিনা তা পরীক্ষা করে দেখতে হবে $base_path
।
আমার একটা আপেক্ষিক পথ আছে
$base_path = "input/myMock.TGZ";
myMock.TGZ
ইনপুট ফোল্ডারে অবস্থিত ফাইলের নাম। ফাইলের নাম পরিবর্তন করতে পারে। তবে পথটি সর্বদা সঞ্চিত থাকে $base_path
।
আমার ফাইলটি আছে কিনা তা পরীক্ষা করে দেখতে হবে $base_path
।
উত্তর:
ফাইল-পরীক্ষা অপারেটরটি ব্যবহার করে প্রদত্ত পথে কিছু উপস্থিত রয়েছে কিনা তা -e
পরীক্ষা করুন।
print "$base_path exists!\n" if -e $base_path;
যাইহোক, এই পরীক্ষাটি সম্ভবত আপনি যা চান তার চেয়েও বিস্তৃত। উপরের কোডটি যদি সেই পথে একটি সরল ফাইল উপস্থিত থাকে তবে আউটপুট উত্পন্ন করবে তবে এটি ডিরেক্টরি, নামক পাইপ, একটি সিমিলিংক বা আরও বহিরাগত সম্ভাবনার জন্যও আগুন ধরিয়ে দেবে। বিশদ জন্য ডকুমেন্টেশন দেখুন ।
.TGZ
আপনার প্রশ্নের বর্ধনের দিক থেকে মনে হচ্ছে বিকল্পগুলির পরিবর্তে আপনি একটি সরল ফাইল প্রত্যাশা করছেন । -f
ফাইল-পরীক্ষা অপারেটর জিজ্ঞেস কিনা একটি পাথ একটি প্লেইন ফাইল বাড়ে।
print "$base_path is a plain file!\n" if -f $base_path;
পারফ্ল্যাঙ্ক ডকুমেন্টেশন পার্লের ফাইল-পরীক্ষা অপারেটরগুলির দীর্ঘ তালিকা জুড়েছে যা আপনি অনুশীলনে যে পরিস্থিতিগুলির মুখোমুখি হবেন এমন অনেকগুলি পরিস্থিতি জুড়ে।
-r
ফাইল কার্যকর uid / gid দ্বারা পঠনযোগ্য।-w
কার্যকর uid / gid দ্বারা ফাইল লিখনযোগ্য।-x
কার্যকর uid / gid দ্বারা ফাইল কার্যকর করা যায়।-o
ফাইল কার্যকর uid এর মালিকানাধীন।-R
ফাইলটি বাস্তব uid / gid দ্বারা পঠনযোগ্য।-W
ফাইলটি বাস্তব uid / gid দ্বারা লিখনযোগ্য।-X
ফাইল বাস্তব uid / gid দ্বারা কার্যকর করা যায়।-O
ফাইল রিয়েল ইউডের মালিকানাধীন।-e
ফাইলটি আছে.-z
ফাইলটির শূন্য আকার রয়েছে (খালি রয়েছে)।-s
ফাইলের ননজারো আকার রয়েছে (বাইটগুলিতে আয়তন আয়তন)।-f
ফাইল একটি সরল ফাইল।-d
ফাইল একটি ডিরেক্টরি।-l
ফাইলটি একটি প্রতীকী লিঙ্ক (যদি ফাইল সিস্টেম দ্বারা সিমলিঙ্কগুলি সমর্থন না করে তবে মিথ্যা)।-p
ফাইল একটি নামক পাইপ (FIFO), বা ফাইলহ্যান্ডেল একটি পাইপ।-S
ফাইলটি একটি সকেট।-b
ফাইল একটি ব্লক বিশেষ ফাইল।-c
ফাইল একটি চরিত্র বিশেষ ফাইল।-t
ফাইলহ্যান্ডেল একটি tty খোলা হয়।-u
ফাইল সেট বিড সেট আছে।-g
ফাইল সেটগ্রিড বিট সেট করেছে।-k
ফাইলের স্টিকি বিট সেট রয়েছে।-T
ফাইলটি একটি এএসসিআইআই বা ইউটিএফ -8 পাঠ্য ফাইল (হিউরিস্টিক অনুমান)।-B
ফাইল একটি "বাইনারি" ফাইল (এর বিপরীতে-T
)।-M
স্ক্রিপ্ট শুরুর সময় বিয়োগ ফাইল পরিবর্তনের সময়, দিনগুলিতে।-A
অ্যাক্সেস সময় একই।-C
ইনোড পরিবর্তনের সময় একই (ইউনিক্স, অন্যান্য প্ল্যাটফর্মের জন্য পৃথক হতে পারে)
-e
আপেক্ষিক পথে কাজ করে তবে আমি মনে করি আপনার প্রশ্নটি আমি ভুল বুঝেছি। আপনার কি নামের একটি ডিরেক্টরি রয়েছেmyMock.TGZ
এবং আপনি জানতে চান যে সেই ডিরেক্টরিতে কোনও নির্দিষ্ট নামের একটি ফাইল রয়েছে? উদাহরণগুলি অন্তর্ভুক্ত করতে আপনার প্রশ্ন সম্পাদনা করে আপনাকে আরও ভাল উত্তর দিতে আমাদের সহায়তা করুন!
আপনি সম্ভবত বিদ্যমান একটি বৈকল্পিক চাইবেন ... perldoc -f "-f"
-X FILEHANDLE
-X EXPR
-X DIRHANDLE
-X A file test, where X is one of the letters listed below. This unary operator takes one argument,
either a filename, a filehandle, or a dirhandle, and tests the associated file to see if something is
true about it. If the argument is omitted, tests $_, except for "-t", which tests STDIN. Unless
otherwise documented, it returns 1 for true and '' for false, or the undefined value if the file
doesn’t exist. Despite the funny names, precedence is the same as any other named unary operator.
The operator may be any of:
-r File is readable by effective uid/gid.
-w File is writable by effective uid/gid.
-x File is executable by effective uid/gid.
-o File is owned by effective uid.
-R File is readable by real uid/gid.
-W File is writable by real uid/gid.
-X File is executable by real uid/gid.
-O File is owned by real uid.
-e File exists.
-z File has zero size (is empty).
-s File has nonzero size (returns size in bytes).
-f File is a plain file.
-d File is a directory.
-l File is a symbolic link.
-p File is a named pipe (FIFO), or Filehandle is a pipe.
-S File is a socket.
-b File is a block special file.
-c File is a character special file.
-t Filehandle is opened to a tty.
-u File has setuid bit set.
-g File has setgid bit set.
-k File has sticky bit set.
-T File is an ASCII text file (heuristic guess).
-B File is a "binary" file (opposite of -T).
-M Script start time minus file modification time, in days.
if (-e $base_path)
{
# code
}
-e
পার্লের 'অস্তিত্ব' অপারেটর।
আপনি এই পৃষ্ঠায় কোড ব্যবহার করে অনুমতি এবং অন্যান্য বৈশিষ্ট্যগুলি পরীক্ষা করতে পারেন ।
তুমি ব্যবহার করতে পার: if(-e $base_path)
-f
কোনও সাধারণ ফাইলের জন্যও পরীক্ষা করতে ব্যবহার করতে পারেন (কোনও ডিরেক্টরি বা অন্য কোনও বিশেষ ধরণের ফাইলের
ব্যবহার করুন:
if (-f $filePath)
{
# code
}
-e
ফাইলটি ডিরেক্টরি হলেও সত্য হয়। -f
এটি সত্যিকারের ফাইল হলেই সত্য হবে return
#!/usr/bin/perl -w
$fileToLocate = '/whatever/path/for/file/you/are/searching/MyFile.txt';
if (-e $fileToLocate) {
print "File is present";
}
if(-e $base_path){print "Something";}
কৌতুক করবে
নীচের কোডটি ব্যবহার করুন। এখানে পরীক্ষা করে দেখুন, এটি কোনও ফাইল বা না:
print "File $base_path is exists!\n" if -f $base_path;
এবং উপভোগ করুন