'ls' ডিরেক্টরিতে দুটি অভিন্ন ফাইল দেখাচ্ছে


14

সুতরাং কোনওভাবে কমান্ডটি 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"

বিঃদ্রঃ

নীচের উত্তরটি আমাকে দেখতে সাহায্য করেছিল যে নামে একটি পিছনে স্থান ছিল।


6
এটি কি আপনার নামে একটি পিছনে স্থান থাকতে পারে?
ফ্রেডট্যান্টিনি

হুমমম ... না, সমাপ্তি করবে ls test\ ... আপনি যদি ব্যবহার করেন তবে কী হবে ls "*tftp.list*"? বা ব্যবহার lsসঙ্গে --show-control-chars?
ফ্রেডট্যান্টিনি

1
আপনি কি echo tftp* | xxdঅন্য কোনও হেক্সডাম্পের মতো কিছু চালাতে পারেন ?
চোরোবা

2
এর আউটপুট কি printf '<%q>\n' tftp*?
ক্রিস ডাউন

3
যেহেতু আপনার স্থানীয় অবস্থান en_US.UTF-8, তাই ls -bকোনও বিশেষ উপায়ে ফাইলের নাম ফাঁকা দেখাবে না, মাঝখানে বা ফাইলের শেষে থাকুক। আপনি উত্তরগুলির মধ্যে একটি (প্রিন্টফ, প্রতিধ্বনি), বা ট্র্যাকিং ফাঁকা স্থান হাইলাইট করার জন্য ডিজাইন করা একটি প্রোগ্রামের সাহায্যে এলএস এর আউটপুট ফিল্টার করতে পারেনls -1 tftp* | cat -vet
মার্ক প্লটনিক

উত্তর:


22

আপনার হয় শ্বেতক্ষেত্রের পশ্চাদমাংশ, বা একটি দূষিত ফাইল সিস্টেম।

চেষ্টা

for i in tftp.plist*
do
    echo "'$i'"
done

যে মত কিছু আউটপুট করা উচিত

'tftp.plist'
'tftp.plist '

উদ্ধৃতি এবং অতিরিক্ত স্থান নোট করুন। যদি এটি একই জিনিসটিকে দু'বার আউটপুট করে দেয় তবে আপনার সম্ভবত একটি দূষিত ফাইল সিস্টেম রয়েছে।

চেষ্টা

ls -i tftp.plist*

এটি আপনাকে ফাইলের ইনোড নম্বর দেবে। যদি সেগুলি একই হয় তবে আপনার ডিরেক্টরিতে দুবার একই ফাইল রয়েছে। এটি সত্যিই খারাপ (টিএম) হবে এবং আপনার fsck asap চালানো উচিত। তবে আমি সন্দেহ করি যে সমস্যাটি; এটি সম্ভবত সাদা স্থানের জিনিস thing


কোনও ধারণা কেন পিছনের শ্বেত স্পেসটি 'ls`' এর সাথে bবা Bপতাকা ব্যবহার করে প্রদর্শিত হচ্ছে না?
111 ---

@ ডাড ইউজার: এটির -Bসাথে কিছুই করার নেই, এবং এর কোনও উদাহরণ আপনি দেখান না ls -b। তবে -blahআপনার সাথে অবশ্যই অবশ্যই একটি লাইন শেষ হওয়া উচিত ছিল tftp.plist \
স্টিভ জেসপ

হ্যাঁ আমি উভয় ব্যবহার করছিলেন bএবং Bএবং কেউই পালিয়ে স্থান বা পাঠযোগ্য বিন্যাসে অ মুদ্রণ অক্ষর মান প্রদর্শন করুন। খুব বিজোড় আইএমএইচও।
111 ---

1
আপনি lsকোনও ফাইলের আউটপুট পুনর্নির্দেশ করতে পারেন , এবং এটি lessবা কোনও পাঠ্য সম্পাদক দিয়ে এটি পরীক্ষা করতে পারেন ...
লাস্লোলো ভালকো

1
যারা এখনও ভাবছেন, তাদের জন্য হেক্সডাম্পটি প্রকাশ করেছেন নামটি "tftp.plist" (অর্থাত্ পিছনের স্থান)।
জোশুয়া
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.