Та же папка и имя файла в том же месте

В Ubuntu почему я не могу иметь папку с именем «MyFile» и документ с именем «MyFile» в одном месте? Я получаю ошибку item already used in this location. Ubuntu / Linux рассматривает папки и файлы как одни и те же объекты (указатели на диск)?

15
задан 22 April 2018 в 19:16

4 ответа

у Вас не может быть двух объектов с тем же именем в том же месте. что произойдет, когда Вы захотите кошке или vi файл? объект ведьмы будет, ОС выбрала? таким образом из-за возможности беспорядка Вы не сможете иметь то же название файла и папки в том же месте. и по тому, как папка является файлом, которые размещают другие файлы.

0
ответ дан 23 April 2018 в 05:16
  • 1
    man 5 crontab: если MAILTO не определяется, " почта отправляется владельцу crontab." для не отправки почты, MAILTO должен быть определен, чтобы быть пустой строкой. – fkraiem 10 November 2016 в 01:22

В Linux почти все - дескриптор файла. Каталог является специальным типом файла, который с точки зрения пользователя может содержать другие файлы.

, Таким образом, у Вас не может быть обоих с тем же именем в том же каталоге одновременно.

, Если бы Вы могли, жизнь стала бы скудной для кодеров. Что было бы Вы иметь команду "isDir" возврат, когда кто-то хочет создать каталог, и проверка на него к существует. Должен isDir ("/home/shrodingers/cat") возвращают true, ложь или обоих? И что Вы ожидали бы, хочет ли кто-то открыть dir файла в некотором коде?

И что должна сделать система, когда Вы говорите ей открывать что-то? Предположите желание файла? Это записывает проблему ;)

Между прочим: это верно для ВСЕХ операционных систем, не просто Linux. Хотя с Настольной точки зрения операционная система могла добавить уникальный идентификатор к файлу или каталогу и удалить его из списка. С точки зрения командной строки это было бы проблематичный все же.

существует одна вещь, которую мы имеем по Windows: мы используем чувствительные к регистру имена. Таким образом, "MYFILE" и "myfile" являются разными вещами.

0
ответ дан 23 April 2018 в 05:16
  • 1
    Я не использовал " - no-bootloader" опция во второй раз вокруг. Когда-то после того, как я записал, что сначала комментируют, я переустановил Ubuntu снова, на этот раз выбрав тот же раздел и для Ubuntu и для Личинки 2. Установка завершается успешно. Но, поскольку я сказал, когда я выбрал параметры загрузки Ubuntu, я создал через EasyBCD, он просто загружает Grub4Dos. – Nimrand 16 November 2016 в 23:43

https://unix.stackexchange.com/a/238056/139805

, ничего себе это действительно странно, но я просто сделал то, что спросил автор. Это - то, как, таким образом, это - реальный ответ :P

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 # 
0
ответ дан 23 April 2018 в 05:16
  • 1
    попытайтесь изменить владение sudo показанный root:root / путь к Вашему диску – Sukhjinder Singh 9 November 2016 в 20:31

Я знаю, что это - старая тема, но у меня просто была та же проблема, и я хотел совместно использовать.
Вот моя история (быть терпеливым, существует счастливый конец).

Среда:
Хинду ядро 4.12.5 64 бита на reiserfs

То, как это могло, произошло?
У меня есть несколько машин с папкой, совместно использованной с помощью syncthing. В какой-то момент в прошлом я удалил файл, названный ".stfolder", и создаю каталог с тем именем, вместо этого. Таким образом, возможно, ошибка происходит из-за syncthing, синхронизирующего эту операцию на другой машине.

Теперь давайте исследуем ошибку: (Я действую в качестве корня здесь),

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

Я не могу удалить тот фантомный файл!

Но в конце, я успешно удалил его путем перемещения его в tmpfs точку монтирования

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

Я должен сказать, что ошибка все еще присутствует на tmpfs, таким образом, не связана с reiserfs:

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

Как Вы видите в этом выводе удара, файл присутствует и не - подарок одновременно. Из-за этой способности к кошке Schrödinger мы можем создать папку с тем же именем.
Но ожидайте, существует больше (и необходимо найти это очевидным): мы можем создать другой файл с тем же именем также.

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"

Фантом может быть скопирован (таким образом, я могу копировать ошибку), или управляемый показанным, chmod, и т.д. единственное ограничение - Вы, не может назвать его так, необходимо поместить его в пустой каталог и использование ".*" как аргументы в пользу тех команд..., но это работает!

Из-за самой природы его этот файл был пуст с начала (это - просто флаг для syncthing).
Таким образом, мне было любопытно, если я мог бы поместить некоторые данные в тот файл.
И здесь, решение прибыло ко мне:

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

Да, существует невидимый символ в том файле, сразу после точки.
Это объясняет все.
Слава Богу я не использовал "тест эха>>.*" и кошка...

1
ответ дан 17 April 2019 в 18:26

Другие вопросы по тегам:

Похожие вопросы: