Neden aynı klasörde bir dosya ve klasöre sahip olamıyorum?


21

Bu sorunu daha önce hiç yaşamadım, fakat nedense klasörümü yeniden adlandıramıyorum packages/.

Bu yapı:

root
  -  packages_old/
  -  packages

Klasörü Thunar ile yeniden adlandırmaya çalıştığımda, dosyanın zaten var olduğunu söyleyen bir hata mesajı alıyorum. İle aynı mv:

blender iso $ mv packages_old/ packages/
mv: accessing `packages/': Not a directory

Neden aynı adı taşıyan dosya ve klasörümü yeniden adlandıramıyorum:

root
  -  packages/
  -  packages

Ben yemin Bunu daha önce yaptık.


19
Hafızanız muhtemelen düşündüğünüz kadar kusursuz değildir. Unix platformunda "her şey bir dosyadır". Dizinler sadece özel bir dosya türü olduğundan aynı isimde bir dosya ve klasöre sahip olamazsınız. Bu .d, dizinlerdeki geleneksel uzantılarla ilgilidir /etc. Varsayalım ls packagesya da vim packages- dizini ya da dosyayı isteyip istemediğinizi sistem nasıl anlar?
jw013

2
Hangi işletim sistemini kullandığınızı bize söyleyebilir misiniz? Çünkü bir dosyaya sahip olamazsınız ve bir dizin bildiğim çoğu işletim sisteminde aynı ada sahip
rahmu

2
@ j013, bir açıklamada yanıtladı ve bir yazdı değil neden cevap ?
andcoz

1
Bunu Windows'ta da yapamazsınız. Windows 7 makinemde bunu yapmaya çalışmak hataya yol There is already a file with the same name as the folder name you specified. Specify a different name.
Chris Down

4
Windows'ta varsayılan ayarlar uzantıları yoksaymaktır, böylece aynı klasörde bir packageklasör ve package.txtdosya olabilir . Windows Gezgini'nden, "paket" olarak adlandırılan girişleri yapmanız gerektiği anlaşılıyor, aslında bir tanesinin dosya adının bir kısmını saklıyor.
Arcege

Yanıtlar:


35

Unix'te hemen hemen her şey bir dosyadır. Bir dizin, kullanıcının bakış açısından diğer dosyaları "içerebilen" özel bir dosya türüdür.

Hata Not a directory, var olan dosyanız bir dizin olmadığından ve bir dizin bir dosya türü olduğundan ve bir dizinde aynı iki dosya bulunamadığından işlem gerçekleştirilemez.


6
Hafıza probleminize gelince, belki geçmişte dosya ve dizininiz aynı isimdeydi ancak "paket" ve "Paket" gibi farklı durumlara sahiplerdi. Dosya adları büyük / küçük harf duyarlıdır, bu nedenle işe yarayabilir.
noamtm

2

Çünkü eğer böyle bir şey yapabilseydiniz, bir dizindeki dosyaları yinelemeye çalıştığımda, benim gibi programcılar için hayat sefil olurdu.

Aşağıdaki sözde kod için:

isDir('/path/to/same_file_and_folder_name')

İşletim sistemi doğru mu yoksa yanlış mı cevap vermeli?


Sadece 'her ikisini de' vermelidir.
Anthon,


1
@ G-Man Tipi boolean bekleniyor, nesne var (söz veriyorum).
Scott Yang,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.