- Это плохая практика, чтобы имя папки содержало точку (.)? Как насчет имени файла с несколькими точками?
- 5 ответов
- Краткий ответ
- Длинный ответ
- Техническая информация: файловая система
- Техническая информация: типы файлов
- связанные с
- Linux точка перед папкой
- Заглавные и маленькие буквы
- Расширения (суффиксы) имён
- [core-utils] cp файлов, начинающихся с точки
- Предлагаю использовать нормальный шелл
- Как создать папку с точкой в названии?
- Позанудствую
- Похожие темы
Это плохая практика, чтобы имя папки содержало точку (.)? Как насчет имени файла с несколькими точками?
Иногда целесообразно, чтобы имя папки содержало точку (.). Например, вы храните данные для эксперимента, проведенного при L=0,5. Таким образом, папка может быть названа:
Аналогичная проблема может возникнуть для имен файлов. Например:
Работа в Ubuntu, это плохая практика? Как насчет того, чтобы поделиться этими каталогами с пользователем Windows?
5 ответов
Насколько я знаю, нет проблем с именами папок и файлов с одной или несколькими точками.
Обычно Ubuntu не использует точку и три символа (например,.txt) для определения типа файла. Так что это не имеет особого значения в контексте Ubuntu. Это полезно при обмене файлами с Windows. Ubuntu использует магические числа в первых нескольких байтах файла, чтобы определить тип файла. Тем не менее, Наутилус. игнорирует магические числа, если для определения типа файла доступно расширение из трех точек и символов. Этот параметр можно изменить. См. Force nautilus, чтобы игнорировать расширения
В Ubuntu запуск имен файлов или папок с точки, такой как .experiment_L0.5 , делает файл или папку скрытыми. Вы можете переключить отображение скрытых файлов, нажав Ctrl + H в Nautilus. В Windows имя файла начинается с. не спрятан Так что если вы передаете скрытый файл с именем .experiment_L0.5 в систему Windows это будет ясно видно.
В Ubuntu имя файла может заканчиваться точкой, так как оно не имеет особого значения в конце. Однако в Windows точка разделяет имя и расширение файла, а имя файла, оканчивающееся точкой, но расширение не допускается. Когда я попытался создать такой файл в Windows, я получил файл только с именем, без точки, без расширения.
Краткий ответ
- Windows не позволяет следующие символы: <>:»/\|?* ( источник)
- Больше символов, которые не поощряются: пробел и точка . ( источник)
- Инструменты командной строки сложнее использовать, когда у вас есть пробелы в именах (сложнее, не невозможно)
- Точки используются в RegEx (например, когда вы хотите использовать grep ). Первая точка делает файл скрытым в Linux. В Windows точки используются в расширении файла, которое используется для определения типа файла.
Длинный ответ
Техническая информация: файловая система
Ubuntu использует ext4 файловая система. Файловая система отслеживает, где файлы хранятся в базовом хранилище (диск или SSD или что-то еще), права доступа в форме владельца / группы / других могут считывать / записывать / выполнять, отметки времени, имя.
Файловая система структурирует доступное хранилище. Первый блок называется «суперблок». Этот блок используется для монтирования файловой системы. Насколько я знаю, каждая современная файловая система делит свое пространство на блоки. Я думаю (и я не слишком уверен в этом), что большинство файловых систем также имеют фиксированный размер блока, хотя размер блока можно настроить при создании файловой системы. ext4 (а также ext2 и ext3) используют так называемые «inode» для файлов и каталогов. Эти иноды содержат указатели на другие блоки (которые также могут быть инодами или «блоками данных»). И «первый» индекс файла содержит всю информацию, о которой я упоминал выше.
Еще одна информация — это «тип» файла. «Тип» может быть:
- обычный файл
- каталог
- файл устройства (блочное или символьное устройство)
- .
Фактически, вы также можете открывать каталоги с помощью редактора:
Поскольку каталог не содержит полный путь, а только названия содержимого, я не вижу причины, по которой файлы не могут содержать / , Я думаю, это может быть удобством. (Кто-нибудь знает почему / не допускается?)
Однако для других файловых систем все иначе. FAT16 и FAT32 использовали так называемую «таблицу размещения файлов». Это означает, что есть таблица, которая содержит все файлы, хранящиеся в вашем файле, в каком «кластере» они начинаются и в каком кластере они заканчиваются как односвязный список.
Важно отметить, что запрещенные символы также могут зависеть от файловой системы.
Техническая информация: типы файлов
- Windows использует расширения файлов для определения типов файлов
- Linux использует «Волшебные байты» для определения типов файлов. Магические байты являются частью содержимого файла и, следовательно, полностью независимы от имени. Эти байты являются частью спецификации типа файла (см., Например, спецификацию png). Он также использует расширения имени файла для файлов с такими же магическими байтами, как .txt или же .html (оба текстовые файлы).
связанные с
Linux точка перед папкой
Файловые системы ext2 и ext3 допускают наличие в именах файлов практически любых символов, кроме разделителя директорий ( / ). Однако я не советую использовать имена, содержащие русские буквы, знаки пунктуации (кроме точки), пробелы, псевдографику, экзотические знаки вроде символа перехода на новую строку. Не стоит также начинать имена файлов с дефиса ( — ). Тут дело в том, что многие программы, работающие с файлами, принимают в командной строке ключи (опции), начинающиеся с дефиса. Например, вы хотите пролистать каталог по имени -lR командой ls -lR . Но -lR будет воспринято программой ls не как имя каталога, а как ключи -l (выдать подробный листинг) и -R (рекурсивно), и в результате вы получите листинг текущего каталога (так как каталог не указан, программа ls по умолчанию работает с текущим). Во всех остальных случаях дефис в именах файлов вполне допустим и часто используется. Советуем ограничиться следующим набором символов — латинские буквы (большие и маленькие), цифры, знак подчёркивания, дефис (но не в начале), точка.
Заглавные и маленькие буквы
В файловых системах ext2 и ext3 (в отличие от файловых систем Microsoft Windows ) имена файлов являются чувствительными к регистру ( case sensitive ) — заглавные и маленькие буквы в именах различаются.
Расширения (суффиксы) имён
Термин «расширение» сохранился со времён, когда операционная система Microsoft DOS была самой популярной для персональных компьютеров типа IBM PC. Файловая система DOS позволяла в именах файлов не более 11 знаков; первые не более 8 из них считались основным именем (base name), а не более 3 последних — расширением ( extension ) имени. Для отделения основной части имени от расширения использовалась точка (кроме специальных имён — . и .. ). Сама точка не считалась частью имени. Имена WORK и WORK. означали одно и то же. Вот пример имени файла наиболее длинного имени: AUTOEXEC.BAT . Многие программы для DOS и Windows придают расширениям чересчур большое значение — например, Microsoft Word будет упорно пытаться открыть файл с расширением .DOC как документ в его родном формате, даже если в файле содержится простой текст. В файловых системах Linux точка — такая же часть имени, что и любой другой символ. Теперь уже WORK и WORK. станут ссылаться на разные файлы. Если угодно, можно по-прежнему называть часть имени файла, следующую за точкой, расширением, хотя точек в имени может быть и несколько. Например, файловому архиву в формате tar , сжатому компрессором lzma , часто дают суффикс .tar.lzma . Большинство программ для Linux не связывают расширение имени файла с его содержимым, либо связывают, но позволяют явно указать тип содержимого файла с помощью опций. Тот же Perl будет запускать свои программы по имени, независимо от того, какое расширение использовано — .pl , .plx или .cgi , и есть ли оно вообще.
Некоторые программы вроде текстовых редакторов, работающие с файлами, и «на месте» изменяющие их содержимое, способны оставлять резервные копии. Имена таких копий обычно получаются из исходных имён добавлением знака ~ в конце, например, linux.html~ .
[core-utils] cp файлов, начинающихся с точки
Можете предложить какой-нибудь способ, как файлы лежащие, н-р, в /etc/skel и начинающиеся с точки , только такие , скопировать, ну например в домашний_каталог ($HOME)?
cp /etc/skel/.* $HOME — не предлагать!
Предлагаю использовать нормальный шелл
find /etc/skel/ -type f -exec cp -v {} $HOME \;
>find /etc/skel/ -type f -exec cp -v {} $HOME \;
Ты забыл «-name ‘.*’» и «-maxdepth 1» 🙂
Да, забыл упомянуть BASH используется
>Да, забыл упомянуть BASH используется
работает, как хотел, копирует файлы, а если -r добавим еще и каталоги, причем пути сохраняются, спасибо;
Не подскажешь, а в man bash про символ «\» прочитать в каком разделе можно, как в команде на вроде, что ты выше привел или можешь пояснить?У меня на баше «echo /etc/skel/\.*» выводит то же, что и обычный «echo /etc/skel/.*», включая «.» и «..».
Ну не знаю, посмотрим. а в обще существенно отличается синтаксис zsh от bash или не в нем дело?
Ааа, да, напутал, не прокатило, с ключом -a уже каталоги из уровня, что выше копируются
>Ну не знаю, посмотрим. а в обще существенно отличается синтаксис zsh от bash или не в нем дело?
Дело в том, что в zsh дофига разных плюшек. Меня, например, покорило расшаривание истории между _одновременно_ работающими сеансами.
Из полезных фич применительно к данному случаю можно упомянуть возможность прямо в маске использовать различные проверки, например, (.) означает простой файл, (/) — каталог, (F) — непустой каталог и т.п. Подробнее здесь: http://linux.die.net/man/1/zshexpn
«\» — просто стандартный экранирующий символ. Точка будет интерпретироваться как точка, а не как служебный символ.
>«\» — просто стандартный экранирующий символ. Точка будет интерпретироваться как точка, а не как служебный символ.
Ээ. А с чего ей быть служебным символом? Не regexp вроде же.
Там основная проблема в том, что «.» и «..» тоже под этот шаблон подпадают.Как создать папку с точкой в названии?
Как создать папку с точкой в названии, пытался с помошью chmod — безуспешно, кто-нить помогите (название папки должно быть: .LavaServer) Спасибо.
а что нельзя через mkdir или переименовать через mv ?
Спасибо, я прост ещё не сильно в Линукс разбираюсь
Это лучше делать командой rm или ls
Это лучше делать командой rm или ls
Ересь! Специально для этого Господь придумал священный ping!
Ересь! Специально для этого Господь придумал священный ping!
Именем святого vi и его сына vim и их брата neovim изгоняю тебя!
chmod существует не для этого. Вас кто-то ввёл в заблуждение, либо это такой толстый троллинг?
Для создания каталогов необходимо использовать mkdir. Переименовать каталог можно с помощью mv.
P.S. Кстати, эта графическая рабочая станция — первый в мире массовый «компутер», который штатно комплектовался «манипулятором типа мышь». На фото она есть.
mandala ★★★★★ ( 15.12.17 05:53:30 MSK )
Последнее исправление: mandala 15.12.17 05:57:32 MSK (всего исправлений: 4)Если у тебя какая-то психологическая травма на «папок/мамок», сочувствую. «Папки» имеют место быть исключительно и сугубо в гуе, в сонсоле у нас cd, mkdir etc .
Позанудствую
Каталог. Это по русски. И «папка» это по русски. А «директория» в значении «каталог» — это глупый англицизм. В GUI же ни кто не говорит «фольдер».
Это по русски. И «папка» это по русски.
Это у меня еще спелчекер работает. А так вообще мрак.
Да, действительно. На каком-то другом форуме увидел эту команду, или не до конца понял смысл, или меня облопошили.
Этой или схожей фразой многие регистранты обычно выражают своё дальнейшее нежелание посещать более форум, и фактически расписываясь в собственном бессилии, малодушно ищут скорейшего избавления от страданий.
На самом деле emacs заменяет собой всё вышеперечисленное.
Это всё западные извращения, на радио86рк такого не было.
Каталог. Это по русски. И «папка» это по русски. А «директория» в значении «каталог» — это глупый англицизм. В GUI же ни кто не говорит «фольдер».
А «каталог» это русское слово, или др.греческое? Англицизм, латинизм. Какая разница, откуда позаимствовано слово. Тем более, если это не слово, термин предметной области.
man chmod . chmod changes the file mode bits of each given file according to mode .
папки спят с мамками, а в линуксе это называется каталог или директория.
это будет скрытый каталог, если что. А по сабжу: http://lmgtfy.com/?q=создать каталог в linux
Пророк emacs смотрит на вас с недоумением.
Deleted ( 15.12.17 17:12:25 MSK )
Последнее исправление: nepank 15.12.17 17:18:47 MSK (всего исправлений: 1)Раз любишь вводить команды не понимая что они делают, то тебе срочно сюда
Deleted ( 15.12.17 17:17:50 MSK )
Последнее исправление: nepank 15.12.17 17:20:08 MSK (всего исправлений: 1)Похожие темы
- Форум Как вернуть дефолтный chmod на все системные папки Ubuntu (2023)
- Форум samba папка с точкой (2008)
- Форум Доступ ко всей папке (2005)
- Форум Как вытащить из IMG образа для QEMU данные (2019)
- Форум gthumb создаёт лишние папки (2013)
- Форум Как убрать право выполнения с файлов, но оставить на папках? (2014)
- Форум Скрипт переноса файла в новую папку (2017)
- Форум Вывести название текущей папки (2016)
- Форум vsftp нужна помощ срочно. (2006)
- Форум Как создать точку доступа на линуксе. (2009)