একই স্থানে একই ফোল্ডার এবং ফাইলের নাম


15

উবুন্টুতে কেন আমার কাছে "মাইফাইল" নামে একটি ফোল্ডার এবং একই জায়গায় "মাইফাইল" নামে একটি নথি থাকতে পারে না? আমি একটি item already used in this locationত্রুটি পেয়েছি । উবুন্টু / লিনাক্স ফোল্ডার এবং ফাইলগুলিকে একই জিনিস (ডিস্কে পয়েন্টার) হিসাবে বিবেচনা করে?


নাম ঠিক কি ঠিক এর মতো? ফাইলের ফাইলের একটি শীর্ষস্থানীয় বিন্দু আছে? উদাহরণস্বরূপ .myfile,?
সের্গেই কোলোডিয়াযনি

আমারও একই সমস্যা ছিল। আমি একটি নামকরণ। বেশ কয়েকটি বিকল্প রয়েছে: উদাহরণস্বরূপ - মাইফাইল বা মাই ফাইল অথবা ফাইলটির নাম মাইফিল.টিএসটিএস্ট করুন। একটির নামকরণও ঠিক তেমন কাজ করবে।
বক


আমি আপনার হতাশা ভাগ। আমি একটি স্থিতিশীল ওয়েবসাইট তৈরি করছি, এবং আমার কোনও স্থানীয় সংস্করণ থাকতে পারে না যার ফোল্ডারে blogব্লগ পোস্ট রয়েছে এবং ব্লগ পোস্টগুলির blogএকটি তালিকা সহ একটি এইচটিএমএল পৃষ্ঠা বলা হচ্ছে ।
কোস্টা

উত্তর:


29

লিনাক্সে, প্রায় সবই একটি ফাইল বর্ণনাকারী। ডিরেক্টরি হ'ল একটি বিশেষ ধরণের ফাইল যা ব্যবহারকারীর দৃষ্টিকোণ থেকে অন্য ফাইলগুলি ধরে রাখতে পারে।

সুতরাং আপনি একই নামের সাথে একই ডিরেক্টরিতে একইসাথে উভয়ই রাখতে পারবেন না।

আপনি যদি করতে পারেন, কোডারদের জন্য জীবন দুর্বিষহ হয়ে উঠবে। আপনি যখন "ডিরেক্টরি" তৈরি করতে চান এবং ডিরেক্টরি উপস্থিত থাকতে চান তখন আপনার "ইসডির" ফেরতের আদেশটি কী হবে? IsDir ("/ home / shrodingers / cat") কি সত্য, মিথ্যা বা উভয়ই ফিরতে হবে? এবং যদি কেউ কোনও কোডে একটি ফাইলের ডায়ার খুলতে চান তবে আপনি কী আশা করবেন?

আপনি যখন কিছু খুলতে বলবেন তখন সিস্টেমটি কী করবে? ধরুন আপনি ফাইল চান? যে ঝামেলা বানান ;)

যাইহোক, এটি কেবলমাত্র লিনাক্স নয়, সমস্ত অপারেটিং সিস্টেমের ক্ষেত্রে সত্য। যদিও ডেস্কটপ দৃষ্টিকোণ থেকে একটি অপারেটিং সিস্টেম ফাইল বা ডিরেক্টরিতে একটি অনন্য শনাক্তকারী যুক্ত করতে পারে এবং এটি তালিকা থেকে মুছে ফেলতে পারে। একটি কমান্ড লাইন দৃষ্টিকোণ থেকে এটি যদিও সমস্যাযুক্ত হবে।

উইন্ডোজে আমাদের একটি জিনিস রয়েছে: আমরা কেস-সংবেদনশীল নাম ব্যবহার করি। সুতরাং "মাইফাইল" এবং "মাইফিল" আলাদা জিনিস।


2
কোনও সমস্যা নেই :) আমি এটি upvotes এর জন্য করি ;-)
রিনজউইন্ড

1
@ রঞ্জউইন্ড আপভোটদের জন্য? ঠিক আছে, এখানে আরও একটি রয়েছে
এবি

1
লিনাক্স থিওরি অফ থ্রি: সব কিছুই ফাইল!
বাইট কমান্ডার

চার মাস আগে অ্যান্থন এবং আমি শ্রডিনগার বিড়াল / উভয় রসিকতাতে সহযোগিতা করেছি । এবং, যেমন বাইট কমান্ডার বলেছেন, এক্সপ্রেশনটি "সবকিছুই একটি ফাইল", "সবকিছুই একটি ফাইল বর্ণনাকারী নয় is"
জি-ম্যান বলছেন 'মনিকা পুনরায় ইনস্টল করুন'

1
প্লান 9 ( প্লান 9.বেল.লাবস / প্ল্যান 9 ) (ইউনিক্সের মূল নির্মাতারা) সম্ভবত একমাত্র ওএস যেখানে "সবকিছুই একটি ফাইল"। অন্যান্য সমস্ত ইউনিক্স এবং লিনাক্স সিস্টেমের জন্য সঠিক বাক্যাংশটি হ'ল "সবকিছুই একটি ফাইল বর্ণনাকারী"। "সবকিছুই একটি ফাইল" মেমরি, সিস্টেম কল, নেটওয়ার্ক ডিভাইস এবং ফাইলগুলি বাদে বেশ কিছু সবকিছুই রয়েছে তবে তাদের সবার কাছে একটি ফাইল-বর্ণনাকারী রয়েছে ;-) ক্ষেত্রে যদি কেউ এই -> চ্যাট: =) সাথে যেতে চান
রিনজুইন্ড

1

একই জায়গায় একই নামের সাথে আপনার দুটি সত্তা থাকতে পারে না। আপনি যখন ফাইলটি ক্যাট বা ভিআই করতে চান তখন কি হবে? ওএস বেছে নেবে কি ডাইনি সত্তা? সুতরাং বিভ্রান্তির সম্ভাবনার কারণে আপনি একই জায়গায় কোনও ফাইল এবং ফোল্ডারের জন্য একই নাম রাখতে সক্ষম হবেন না। এবং উপায় দ্বারা কোনও ফোল্ডার এমন একটি ফাইল যা অন্য ফাইলগুলি হোস্ট করে।


3
আপনার উত্তরটি ওপির প্রশ্নটিকে তার মুখে ফিরিয়ে দেয় ("একই জায়গায় আপনার একই নামের দুটি সত্তা থাকতে পারে না", যা সে ইতিমধ্যে জানে - প্রশ্নটি "কেন?"), এবং তারপরে আপনি বাকবিতণ্ডিত প্রশ্ন জিজ্ঞাসা করেন , যেন তারা অনস্বীকার্য এবং এই সমস্যার সমাধান করে। আমার যদি একই নামে একটি ফাইল এবং একটি ডিরেক্টরি থাকে এবং আমি catবা viসেই নামটি থাকে তবে স্পষ্টতই, ওএসের ফাইলটি চয়ন করা উচিত। কেন যে কাজ করতে পারে না?
জি-ম্যান বলছেন 'মনিকাকে পুনরায় ইনস্টল করুন'

2
@ জি-ম্যান: প্রকৃতপক্ষে viযা vimউবুন্টুতে থাকে এটি একটি ডিরেক্টরি খোলার এবং প্রদর্শন করে এমনকি সম্পাদনা করতে পেরে খুশি। এটি ব্যবহার করে দেখুন: vi .
আরিফেল

1
@arielf: (1) আমি যে বলছিলেন, যদি ছিল একটি ফাইল সম্ভব এবং একই নামের একটি সাব একই ডিরেক্টরির মধ্যে উপস্থিত, তারপর যখন এর মত (প্রাথমিকভাবে) ফাইল ওরিয়েন্টেড কমান্ড catবা viযে নাম সম্বোধন করা হয়েছে , যৌক্তিক ব্যাখ্যা হ'ল সাব-ডাইরেক্টরির পরিবর্তে ফাইলটিতে এটি চাওয়া। একটি (প্রাথমিকভাবে) ফাইল-ভিত্তিক কমান্ড ( vi) একটি (উপ) ডিরেক্টরিতেও কাজ করে তা এই বিবৃতিটির সাথে সম্পর্কিত নয়।
জি-ম্যান বলছেন 'মনিকা পুনরায় ইনস্টল করুন'

1
(২) আপনার বক্তব্যটি একটি লাল রঙের হেরিং। vimসাব-ডাইরেক্টরিগুলি আর্গুমেন্টগুলিকে নির্লজ্জভাবে আচরণ করে না; এটি একই কোডের সাহায্যে এটি ফাইল পরিচালনা করে।  vimমনে হয় (খুব সরল স্তরে) একটিতে দুটি প্রোগ্রাম: এটি যদি কোনও ফাইলে আহ্বান করা হয় তবে এটি একটি টেক্সট সম্পাদকের মতো কাজ করে এবং যদি এটি একটি সাব-ডিরেক্টরিতে অন্তর্ভুক্ত থাকে তবে এটি ফাইল ম্যানেজারের মতো কাজ করে।
জি-ম্যান বলছেন 'মনিকা পুনরায় ইনস্টল করুন'

1
@ জি-ম্যান: আমি কেবলমাত্র প্রথম মন্তব্যে আপনার শেষ দৃ to়তার উল্লেখ করছি: "তাহলে, অবশ্যই, ওএসের ফাইলটি নির্বাচন করা উচিত।" - এটাই আমার পক্ষে সত্য নয় বলে ঝাঁপিয়ে পড়েছিল vi। চিয়ার্স।
আরিফেল

1

আমি জানি এটি একটি পুরানো বিষয়, তবে আমার কেবল একই সমস্যা ছিল এবং আমি ভাগ করে নিতে চাই।
এখানে আমার গল্প (ধৈর্য ধরুন, একটি সুখী সমাপ্তি আছে) is

পরিবেশ:
জিন্টু কার্নেল রিসিফগুলিতে 4.12.5 64 বাইট

এটা কীভাবে হতে পারে?
সিন্ডিং ব্যবহার করে একটি ফোল্ডার ভাগ করে নিয়ে আমার বেশ কয়েকটি মেশিন রয়েছে। অতীতের এক পর্যায়ে, আমি ".stfolder" নামক একটি ফাইল সরিয়ে ফেলেছি এবং পরিবর্তে সেই নামের সাথে একটি ডিরেক্টরি তৈরি করেছি। সুতরাং সম্ভবত বাগটি অন্য মেশিনে এই ক্রিয়াকলাপটি সিঙ্ক্রোনাইজ করার কারণে হয়েছে।

এখন বাগটি পরীক্ষা করা যাক: (আমি এখানে মূল হিসাবে কাজ করছি )

ls -lahd .*
drwxrwx--- 5 stopi syncthing 656  3 sept. 18:24 .
drwxr-xr-x 5 stopi stopi     240  3 sept. 18:21 ..
drw-rw---- 2 stopi syncthing  48  3 sept. 18:24 .stfolder
-rw-rw---- 1 stopi syncthing   0 29 août  12:51 .stfolder
-rw-rw---- 1 stopi syncthing  23 28 oct.   2017 .stignore

find -type f -name .stfolder
                              (<= no output there)

find -type f -name ".*"
./.stignore
./.stfolder

find -type f -name ".s*"
./.stignore

ফাইলটি একটি ভূত বলে মনে হচ্ছে তবে ফোল্ডারটি সাধারণত উত্তর দিচ্ছে (সন্ধান সহ)

file .*
.:             directory
..:            directory
.stfolder:     directory
.stfolder:     empty
.stignore:     C source, ASCII text

file .s*
.stfolder:     directory
.stignore:     C source, ASCII text

আমি জানি, খুব অদ্ভুত ...

rm -r .stfolder

ls -lahd .*
drwxrwx--- 5 stopi syncthing 656  3 sept. 18:24 .
drwxr-xr-x 5 stopi stopi     240  3 sept. 18:21 ..
-rw-rw---- 1 stopi syncthing   0 29 août  12:51 .stfolder
-rw-rw---- 1 stopi syncthing  23 28 oct.   2017 .stignore

rm .stfolder
rm: impossible de supprimer '.stfolder': Aucun fichier ou dossier de ce type

আমি সেই ভূতের ফাইলটি সরাতে পারি না!

তবে শেষ পর্যন্ত, আমি এটি সফলভাবে একটি টিএমপিএফএস মাউন্ট পয়েন্টে সরিয়ে দিয়ে সরিয়ে ফেলেছি

mv .stfolder /elsewhere/
mv: impossible d'évaluer '.stfolder': Aucun fichier ou dossier de ce type
mv .* /elsewhere/

আমি অবশ্যই বলব যে বাগটি এখনও টিএমপিএফসে উপস্থিত রয়েছে, তাই রিসফার্সগুলির সাথে সম্পর্কিত নয়:

cd /elsewhere

ls -lahd .*
-rw-rw----  1 stopi syncthing   0 29 août  12:51 .stfolder

ls -lahd .s*
ls: impossible d'accéder à '.s*': Aucun fichier ou dossier de ce type

আপনি যেমন এই ব্যাশ আউটপুটে দেখতে পাচ্ছেন, ফাইলটি একই সাথে উপস্থিত এবং উপস্থিত নেই। এই শ্রডিনগার বিড়াল সক্ষমতার কারণে, আমরা একই নামে একটি ফোল্ডার তৈরি করতে পারি।
তবে অপেক্ষা করুন, আরও আছে (এবং এটি আপনার স্পষ্টরূপে খুঁজে পাওয়া উচিত): আমরা একই নামে আরও একটি ফাইল তৈরি করতে পারি।

touch .stfolder

ls -lahdQ
total 0
drwxrwxr-x  3 root   users  100  3 sept. 19:13 "."
drwxrwxrwt 18 root   root   440  3 sept. 17:35 ".."
-rw-r--r--  1 root   root     0  3 sept. 19:13 ".stfolder"
-rw-r-----  1 root   root     0  3 sept. 19:09 ".stfolder"

ভূতটি অনুলিপি করা যায় (সুতরাং আমি বাগটিটি সদৃশ করতে পারি), বা ছাউন, চিমড ইত্যাদি দ্বারা চালিত হওয়া কেবলমাত্র বিধিনিষেধই আপনি নাম রাখতে পারবেন না তাই আপনাকে এটি একটি খালি ডিরেক্টরিতে রেখে "" * * হিসাবে ব্যবহার করতে হবে এই আদেশগুলির পক্ষে যুক্তি ... তবে এটি কার্যকর!

এর প্রকৃতির কারণে, এই ফাইলটি শুরু থেকে খালি ছিল (এটি সিঙ্কিংয়ের জন্য কেবল একটি পতাকা)।
সুতরাং আমি আগ্রহী ছিলাম যদি আমি সেই ফাইলটিতে কিছু ডেটা রাখতে পারি।
এবং এখানে, সমাধানটি আমার কাছে এল:

vi .*
" ============================================================================
" Netrw Directory Listing                                        (netrw v162)
"   /elsewhere
"   Sorted by      name
"   Sort sequence: [\/]$,\<core\%(\.\d\+\)\=\>,\.h$,\.c$,\.cpp$,\~\=\*$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$
"   Quick Help: <F1>:help  -:go up dir  D:delete  R:rename  s:sort-by  x:special
" ==============================================================================
../
./
.<200b>stfolder

হ্যাঁ, বিন্দুর ঠিক পরে সেই ফাইলটিতে একটি অদৃশ্য চরিত্র রয়েছে।
এটি সবকিছু ব্যাখ্যা করে।
Godশ্বরকে ধন্যবাদ, আমি "প্রতিধ্বনি পরীক্ষা >>। *" এবং বিড়াল ব্যবহার করি নি ...


U+200bযাইহোক, একটি "শূন্য প্রস্থের স্থান" । আমি এই উপাখ্যানটি পছন্দ করি, যদিও আমি আশঙ্কা করি এটি উত্তর হিসাবে পুরোপুরি গণনা না করে।
পার্লডাক

0

/unix//a/238056/139805

বাহ এটা সত্যিই অদ্ভুত তবে আমি লেখক যা চেয়েছিলেন ঠিক তাই করেছি। এইভাবে, সুতরাং এটি একটি আসল উত্তর: পি

charles@charles-MacBook ~ $ cd /usr/share
charles@charles-MacBook /usr/share $ ls -ld pix*
drwxr-xr-x 13 root root  4096 Oct 22 21:04 pixmaps
-rw-r--r--  1 root root 17626 Oct 22 21:07 pixmaps 
charles@charles-MacBook /usr/share $ mv pixmaps pixmaps
mv: cannot move ‘pixmaps’ to a subdirectory of itself, ‘pixmaps/pixmaps’
charles@charles-MacBook /usr/share $ ls -ld pix*
drwxr-xr-x 13 root root  4096 Oct 22 21:04 pixmaps
-rw-r--r--  1 root root 17626 Oct 22 21:07 pixmaps 
charles@charles-MacBook /usr/share $ file pix*
pixmaps:  directory
pixmaps : X pixmap image, ASCII text

এটি দ্বারা করা হয়েছিল:

charles-MacBook MaSSH # ls
instMaSSH.sh  MaSSHandra  MaSSHandra.desktop  MaSSHandraMesh.xpm
MaSSHandra.xpm  mime-MaSSHandra.xml
charles-MacBook MaSSH # cat instMaSSH.sh 
cp -i MaSSHandra.desktop /usr/share/applications
cp -i MaSSHandra.xpm /usr/share/pixmaps 
cp -i MaSSHandraMesh.xpm /usr/share/pixmaps
xdg-icon-resource install --context mimetypes --size 48 /usr/share/pixmaps/MaSSHandra.xpm application-x-MaSSHandra
xdg-icon-resource install --context mimetypes --size 48 /usr/share/pixmaps/MaSSHandraMesh.xpm application-x-MaSSHandraMesh
setcap cap_net_raw+ep /opt/MaSSHandra/bin/MaSSHandra
charles-MacBook MaSSH # ./instMaSSH.sh 
cp: overwrite ‘/usr/share/applications/MaSSHandra.desktop’? y
xdg-icon-resource: file '/usr/share/pixmaps/MaSSHandra.xpm' does not exist
xdg-icon-resource: file '/usr/share/pixmaps/MaSSHandraMesh.xpm' does not exist

Whoah বিকল্প প্রতিক্রিয়া একই নামের দুটি ফাইল, এমনকি একটি ডিরেক্টরি এবং একটি ফাইল আর কি হচ্ছে না ??? _

charles-MacBook share # ls -ld pi*
drwxr-xr-x 13 root root  4096 Oct 22 21:08 pixmaps
-rw-r--r--  1 root root 17626 Oct 22 21:09 pixmaps 
charles-MacBook share # mv pixmaps /tmp
charles-MacBook share # mv pixmaps  /tmp/pixmaps/
charles-MacBook share # ls -ld pix*
-rw-r--r-- 1 root root 21535 Oct 22 21:26 pixmaps
-rw-r--r-- 1 root root 17626 Oct 22 21:26 pixmaps 
charles-MacBook share # ls -li pix*
1849351 -rw-r--r-- 1 root root 21535 Oct 22 21:26 pixmaps
1841386 -rw-r--r-- 1 root root 17626 Oct 22 21:26 pixmaps 
charles-MacBook share # file pix*
pixmaps:  X pixmap image, ASCII text
pixmaps : X pixmap image, ASCII text
charles-MacBook share # ls -liF pix*
1849351 -rw-r--r-- 1 root root 21535 Oct 22 21:26 pixmaps
1841386 -rw-r--r-- 1 root root 17626 Oct 22 21:26 pixmaps 

সম্পূর্ণ অদ্ভুত আচরণ

charles-MacBook MaSSH # ls -l /usr/share/pixmaps
pixmaps   pixmaps   
charles-MacBook MaSSH # rm -i /usr/share/pixmaps                                                                 
rm: remove regular file ‘/usr/share/pixmaps’? y
charles-MacBook MaSSH # ls -l /usr/share/pixmaps  
-rw-r--r-- 1 root root 17626 Oct 22 21:26 /usr/share/pixmaps 
charles-MacBook MaSSH # rm -i /usr/share/pixmaps
rm: cannot remove ‘/usr/share/pixmaps’: No such file or directory
charles-MacBook MaSSH # ls -l /usr/share/pixmaps  
-rw-r--r-- 1 root root 17626 Oct 22 21:26 /usr/share/pixmaps 
charles-MacBook MaSSH # cd /usr/share
charles-MacBook share # rm pixmaps  
charles-MacBook share # 

2
দুটি নামের একটির শেষে কিছুটা জায়গা রয়েছে। আপনি "ফাইল" আউটপুটগুলিতে বলতে পারেন।
দাকান্দি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.