সুতরাং কোনওভাবে কমান্ডটি ls
আমাকে একটি ডিরেক্টরিতে দুটি অভিন্ন ফাইল দেখাচ্ছে।
$ ls -Blah /System/Library/LaunchDaemons
total 32
drwxr-xr-x 266 root wheel 8.8K Jun 18 10:41 .
drwxr-xr-x 79 root wheel 2.6K Mar 31 12:28 ..
[redacted]
-rw-r--r-- 1 root wheel 715B Jun 18 10:36 tftp.plist
-rw-r--r-- 1 root wheel 715B Jun 18 10:35 tftp.plist
আমি ফাইলগুলির মধ্যে একটি মুভ, নাম পরিবর্তন, সম্পাদনা ইত্যাদি করতে পারি তবে অন্য একটিটি সেখানে উপস্থিত বলে মনে হয় না। bash
ট্যাব সমাপ্তি এমনকি অভিন্ন ফাইলগুলি দেখায়।
উদাহরণস্বরূপ, নিম্নলিখিতটি প্রবেশ করানো এবং তারপরে আঘাত করা TAB
$ sudo mv /System/Library/LaunchDaemons/tftp
tftp.plist tftp.plist
যদি আমি ফাইলটির নাম পরিবর্তন করি:
$ sudo mv /System/Library/LaunchDaemons/tftp.plist /System/Library/LaunchDaemons/tftp.plist.derp
ট্যাব সমাপ্তি ফাইলটি এখনও দেখায়:
$ ls -Blah /System/Library/LaunchDaemons/tf
tftp.plist tftp.plist.derp
তবে আসল, মোডবিহীন ফাইলটি 'এলএস' তে উপস্থিত হয় না
$ ls -Blah /System/Library/LaunchDaemons/tftp.plist
ls: /System/Library/LaunchDaemons/tftp.plist: No such file or directory
তবে আমি যদি উপরের প্রথম কোড স্নিপেটের মতো ফাইলগুলি কেবল তালিকাভুক্ত করি তবে দেখুন:
$ ls -Blah /System/Library/LaunchDaemons
total 32
drwxr-xr-x 266 root wheel 8.8K Jun 18 10:41 .
drwxr-xr-x 79 root wheel 2.6K Mar 31 12:28 ..
[redacted]
-rw-r--r-- 1 root wheel 715B Jun 18 10:35 tftp.plist
-rw-r--r-- 1 root wheel 715B Jun 18 10:36 tftp.plist.derp
এখানে কী চলছে এবং আমি কীভাবে এই ভূতের ফাইলটি থেকে মুক্তি পাব?
এটি কোনও ম্যাক চালিত ওএস এক্স যদি সমস্যাটিতে কোনও তথ্য যুক্ত করে। sed
উন্মাদনা শুরু হওয়ার ঠিক আগে আমি এই ফাইলটিতে ব্যবহার করছিলাম ।
সম্পাদন করা
আপাত আউটপুটে কোনও পরিবর্তন ছাড়াই আমি পতাকা blah
এবং Blah
ls
পতাকা দুটিই ব্যবহার করেছি ।
সম্পাদনা 2
মন্তব্যগুলিতে অতিরিক্ত তথ্যের জন্য অনুরোধ করা হয়েছে:
$ echo tftp* | xxd
0000000: 7466 7470 2e70 6c69 7374 2020 7466 7470 tftp.plist tftp
0000010: 2e70 6c69 7374 2e64 6572 700a .plist.derp.
আরও:
$ printf '<%q>\n' tftp*
<tftp.plist\ >
<tftp.plist.derp>
আরও বেশি:
$ locale │-rw-r--r-- 1 root wheel 495B Sep 9 2014 org.net-snmp.snmpd.plist
LANG="en_US.UTF-8" │-rw-r--r-- 1 root wheel 498B Jan 15 23:15 org.ntp.ntpd.plist
LC_COLLATE="en_US.UTF-8" │-rw-r--r-- 1 root wheel 1.0K Nov 13 2014 org.openldap.slapd.plist
LC_CTYPE="en_US.UTF-8" │-rw-r--r-- 1 root wheel 572B Sep 9 2014 org.postfix.master.plist
LC_MESSAGES="en_US.UTF-8" │-rw-r--r-- 1 root wheel 238B Sep 9 2014 shell.plist
LC_MONETARY="en_US.UTF-8" │-rw-r--r-- 1 root wheel 941B Sep 9 2014 ssh.plist
LC_NUMERIC="en_US.UTF-8" │-rw-r--r-- 1 root wheel 260B Sep 9 2014 telnet.plist
LC_TIME="en_US.UTF-8" │-rw-r--r-- 1 root wheel 715B Jun 18 10:36 tftp.plist
LC_ALL="en_US.UTF-8"
বিঃদ্রঃ
নীচের উত্তরটি আমাকে দেখতে সাহায্য করেছিল যে নামে একটি পিছনে স্থান ছিল।
ls test\
... আপনি যদি ব্যবহার করেন তবে কী হবে ls "*tftp.list*"
? বা ব্যবহার ls
সঙ্গে --show-control-chars
?
echo tftp* | xxd
অন্য কোনও হেক্সডাম্পের মতো কিছু চালাতে পারেন ?
printf '<%q>\n' tftp*
?
en_US.UTF-8
, তাই ls -b
কোনও বিশেষ উপায়ে ফাইলের নাম ফাঁকা দেখাবে না, মাঝখানে বা ফাইলের শেষে থাকুক। আপনি উত্তরগুলির মধ্যে একটি (প্রিন্টফ, প্রতিধ্বনি), বা ট্র্যাকিং ফাঁকা স্থান হাইলাইট করার জন্য ডিজাইন করা একটি প্রোগ্রামের সাহায্যে এলএস এর আউটপুট ফিল্টার করতে পারেনls -1 tftp* | cat -vet