Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.52/29: Рейтинг темы: голосов - 29, средняя оценка - 4.52
1 / 1 / 0
Регистрация: 17.02.2016
Сообщений: 32

Работа команды "cp" для файлов с точками (скрытых)

16.11.2016, 12:17. Показов 6578. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здрасьте всем!

Чайник, поэтому сильно не ругайтесь. )

Разбираю работу команд оболочки bash по работе с файлами и каталогами в Ubuntu 16.04.1.

Если использую команду удаления rm, то всё логично:

rm * - удаляет все файлы, кроме "файлов с точкой".
rm .* - удаляет все "файлы с точкой".

Аналогично с переносом mv и с удалением каталогов rmdir.

Но вот с копированием cp фигня какая-то.
Если копировать файлы, то всё работает аналогично, но вот если каталоги...

cp -r * dir - копирует все файлы и каталоги, кроме "файлов с точкой", НО! содержимое копируемых каталогов копируется полностью - и с точками и без точек.
Ну может так оно и логично.

А вот если засандалить точку со звёздочкой, то тут вообще ересь какая-то получается.
cp -r .* dir - во-1, в целевой каталог копируются все каталоги и файлы из текущего каталога (с точками и без), во-2, кроме файлов и каталогов из текущего каталога в целевой каталог копируются файлы и каталоги находящиеся в каталоге на один уровень выше текущего (родительском), НО не копируется родительский каталог текущего.


Так и должно быть?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.11.2016, 12:17
Ответы с готовыми решениями:

Удаление скрытых файлов и файлов только для чтения
Раньше удалял все файлы (в том числе скрытые и для чтения) в директории с помощью команды del /F /Q <path dir>*.*. Решил попробовать...

Программа для ПК - Просмотр скрытых системных файлов
Доброго времени суток. У меня такой вопрос: есть ли возможность через комп, посмотреть на телефоне скрытые системные файлы ? Например...

Поиск файлов на диске, за исключением скрытых файлов и папок
Часть кода, желательно использовать её. DirectoryInfo Di = new DirectoryInfo(@"F:"); foreach (FileInfo FileInfo in...

35
1 / 1 / 0
Регистрация: 17.02.2016
Сообщений: 32
22.11.2016, 12:02  [ТС]
Студворк — интернет-сервис помощи студентам
"И очень просто... после того, как вы мне объяснили." (с) Ватсон

Спасибо. Всё логично. )

Как представляю на данный момент, в файловой системе ext файлы/каталоги/ссылки можно определить только через дескриптор. Правильно?
Просмотреть содержимое дескриптора можно командой ls -l.

А можно как-то через шаблон вычленить каталог/файл/ссылку?
Кроме ls -l стандартными средствами можно заглянуть в содержание дескриптора?
0
Заблокирован
22.11.2016, 12:06
Блин... Что ты понимаешь под дескриптором? Что такое "определить" каталог? А вычленить? Это как? В общем, я ничего не понял из того, что ты написал. Совсем.
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
22.11.2016, 12:20
Цитата Сообщение от nimazzzy Посмотреть сообщение
я ничего не понял из того, что ты написал. Совсем.
+1
Цитата Сообщение от siffok Посмотреть сообщение
можно как-то через шаблон вычленить каталог/файл/ссылку?
Следует понимать: «Можно ли в шаблоне определить каталог/файл/ссылку?» Я знаю только «все каталоги» — «*/». А так или через find или парсить вывод ls
1
1 / 1 / 0
Регистрация: 17.02.2016
Сообщений: 32
22.11.2016, 12:23  [ТС]
Попробую,в голове у самого уже каша полная. )

Есть такая команда: ls -i.
Она выводит перед именем файла/каталога/ссылки некоторое число, есть оно и у текущего(.) и родительского(..) каталогов.
Это иноде (inode) - индексный дескриптор. https://ru.wikipedia.org/wiki/Inode
У меня тут непонятка как правильно его называть - в разных источниках он то файловый, то каталога, то вообще файловой системы.

Это вроде как набор бит с описанием значимости файла/каталога/ссылки в структуре файловой системы, видимо как раз то, о чём рекомендовал почитать Marinero.

И где-то вычитал что ls -l просто делает выборку из этого "набора бит", из которой видна категория данных (файл/каталог/ссылка), разрешения, создатель, владелец и что-то ещё.

Вот как-то так.
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
22.11.2016, 12:27
Прямо глаза открываете… Может ls -i(и с точкой сверху)? Это чисто техническая информация, т.н. индекс файла в файловой системе, номер под которым он числится в списке FAT
0
Заблокирован
22.11.2016, 12:31
Ясно. stat выдаст тебе достаточно информации из i-node'ы.
1
1 / 1 / 0
Регистрация: 17.02.2016
Сообщений: 32
22.11.2016, 13:13  [ТС]
Цитата Сообщение от nimazzzy Посмотреть сообщение
Ясно. stat выдаст тебе достаточно информации из i-node'ы.
ВО! Спасибо.

Получается, что иноде содержит только заголовок. Даже для каталога или ссылки.
И является основным источником информации о датах/владельце/разрешениях и категории - только по информации из иноде можно определить наполнение (файл/каталог/ссылка) блока данных на которых он ссылается.

И, как правильно отметил Marinero, каталог - это "файл со списком".

В частности, из stat .. для файла '..' известен его размер: 4096 байт.

Можно посмотреть содержание непосредственно этого файла: файла '..'?
ИМХО, скорее всего он будет содержать ссылки на номера иноде, но всё равно интересно!


Marinero - шрифт мелкий и сложно "и с точкой" рассмотреть (( - "и с точкой" - выдаёт номер иноде, а "эль" - информацию из иноде.
0
Заблокирован
22.11.2016, 13:27
Лучший ответ Сообщение было отмечено Marinero как решение

Решение

Цитата Сообщение от siffok Посмотреть сообщение
Получается, что иноде содержит только заголовок.
Нет. i-node содержит много инфы и о типе, и о правах, размере, указатели на блоки дисковые.
Заголовок? Название - это работа файла-директории, а не i-node. Почитай про жесткие ссылки.
Цитата Сообщение от siffok Посмотреть сообщение
Можно посмотреть содержание непосредственно этого файла: файла '..'?
Драйвер ext именно это делает. Напиши код, читающий данные из блока файла-директории. Либо ls -i запусти.
Цитата Сообщение от siffok Посмотреть сообщение
ИМХО, скорее всего он будет содержать ссылки на номера иноде
Да, файл-директория связывает имя с i-node по номеру.

Добавлено через 4 минуты
Можешь просто взять в руки книгу Kerrisk, Michael. "The Linux Programming Interface: A Linux and UNIX System Programming Handbook". И можно все почитать детально с картинками. Там даны ответы на все твои вопросы.
1
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
22.11.2016, 14:04
Цитата Сообщение от siffok Посмотреть сообщение
из stat .. для файла '..' известен его размер: 4096 байт.
Можно посмотреть содержание непосредственно этого файла: файла '..'?
ИМХО, скорее всего он будет содержать ссылки на номера иноде, но всё равно интересно!
Опять «каша»:
Так называемый «размер: 4096 байт» — это размер кластера (меньше уже быть не может).
«Файла ..» нет, это ссылка на каталог уровнем выше.
Зачем Вам содержимое? Скорее всего он имеет бинарное представление.
Цитата Сообщение от nimazzzy Посмотреть сообщение
просто взять в руки книгу. …Там даны ответы на все твои вопросы.
Люто плюсую! Когда до Вас дойдет что не стоит обсуждать плоды Вашей фантазии, а взять справочную литературу и выяснить, как обстоит всё на самом деле?
0
1 / 1 / 0
Регистрация: 17.02.2016
Сообщений: 32
22.11.2016, 14:13  [ТС]
Под заголовком имел ввиду (опять умолчания) всю "техническую" информацию - " о типе, и о правах, размере, указатели на блоки дисковые" - не относящуюся к данным (содержанию).

Посмотрел страницы 256-258.
Чётко написано: не ссылки, а количество (счётчик) жёстких ссылок. А сами ссылки где? В BD(блоках данных)?

Но ведь если иноде идентичен для всех категорий данных - файлы/каталоги/ссылка, значит содержанию больше негде быть как в блоке данных, а по команде stat .. (тут имеется ввиду две точки, т.е. родительский каталог) имеются данные о названии файла .. (две точки). И надеялся что в него можно заглянуть.
Ведь номер иноде есть и он "общедоступен" (команда ls -i его нам показывает), то зачем скрывать список ссылок на другие иноде...
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
22.11.2016, 14:34
Цитата Сообщение от siffok Посмотреть сообщение
Посмотрел страницы 256-258.
У всех под рукой эта книга.
Цитата Сообщение от siffok Посмотреть сообщение
А сами ссылки где?
Стоит начать со стр.1. ИМХО.
Цитата Сообщение от siffok Посмотреть сообщение
всю "техническую" информацию - " о типе, и о правах, размере, указатели на блоки дисковые" - не относящуюся к данным (содержанию).
Файловая система — Википедия
0
1 / 1 / 0
Регистрация: 17.02.2016
Сообщений: 32
22.11.2016, 14:45  [ТС]
Marinero, создаю пустой файл file, делаю stat file и получаю: Размер: 0
А вот размер блока выдаётся чуть дальше, после Блоков: (для пустого файла 0, двух точек 8) идёт Блок В/В: 4096 - подозреваю что это и есть размер блока.

Бинарное представление по-любЭ - ведь это компьютер, он так работает на нулях и единицах, сами знаете.

Запускаем ls c ключом "и с точкой" и получаем именно те циферки, что должны находится в блоке данных иноде каталога с одной точкой (текущего). Так?
Можно взят эти данные опросив содержимое (опять-таки это как надо скакать по структуре и возможно от самого корня!), а можно взять из иноде текущего каталога и опросив иноде на которые ссылаются для определения имён вывалить на экран. ИМХО быстрее из иноде текущего - меньше запросов к жёсткому диску.

Ведь зачем-то нам дают посмотреть на номер иноде (зачем?), а почему бы не посмотреть на цифры иноде на которые ссылаются. )

По сути ведь все команды обращаются к ПЗУ - ибо все устройства и процессы представлены файлами на жестком диске.
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
22.11.2016, 15:18
Цитата Сообщение от siffok Посмотреть сообщение
взять из иноде
ничего нельзя, т.к. это
Цитата Сообщение от Marinero Посмотреть сообщение
индекс файла в файловой системе, номер
. Я же дал Вам ссылку, неужели лень открыть и прочитать?
0
1 / 1 / 0
Регистрация: 17.02.2016
Сообщений: 32
23.11.2016, 09:52  [ТС]
А вот Брайан Уорд на стр.115 сообщает: "...ядро... файл... может открыть, последовав по ссылке на данные дескриптора inode..."
Т.е. ядро берёт данные из иноде, а мы не можем. Ну и ладно - Quae sunt Caesaris Caesari. )

Спасибо, разобрался - вопрос как работать с дескрипторами теоретический и вылез из работы с точками.


Тогда может быть подскажите ещё одну непонятку?

В оболочке существуют "встроенные переменные", они начинаются со знака доллара($). $EDITOR и т.п..
Уорд (точнее переводчик) их называет "переменные окружения и оболочки".

А также есть одиночные символы, например косая черта(/) - корневой каталог.

И вот просматривая содержимое встроенной переменной $DIRSTACK, обнаружил что ей присвоен символ тильда(~) - домашний каталог пользователя.

Если в курсе, подскажите: как классифицируются одиночные символы типо косой черты или тильды? Их вообще много? А если проще: что это?
0
Заблокирован
23.11.2016, 16:06
Хах, я опять тебя тяжело понимаю. Кстати, тема твоих вопросов уже поменялась, надо новую заводить.
А в тему символов, которым оболочка дает специальные значения, все они описаны в man имя_оболочки. Там же описаны и встроенные переменные.
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
23.11.2016, 18:25
Цитата Сообщение от siffok Посмотреть сообщение
ядро берёт данные из иноде
Не «из», а «по»: по номеру(индексу) ищется запись в БД(базе данных) файловой системы.
Цитата Сообщение от siffok Посмотреть сообщение
Тогда может быть подскажите ещё одну непонятку?
Создавайте новую тему. Закрыто.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.11.2016, 18:25
Помогаю со студенческими работами здесь

Отключить отображения расширения файлов и скрытых системных файлов
Как средствами delphi можно отключить отображения расширения файлов и скрытых системных файлов?

Как осуществить поиск файлов только скрытых или только для чтения
Ребят, помогите пожалуйста, как осуществить поиск файлов только скрытых или только для чтения с помощью Directory.GetFiles ну или как тогда...

Удаление скрытых файлов
#include <System.IOUtils.hpp> if(TDirectory::Exists("%ProgramData%\\MP")) TDirectory::Delete("%ProgramData%\\MP", true);//Папка удаляться...

Обход скрытых файлов
Всем привет.Вылазит эксэпшн т.к пытается получить доступ к скрытым файлам.Как пропустить эти файлы,что бы метод корректно в итоге вернул...

Обнаружение скрытых файлов
Ребята, начал серьезно побаиваться по поводу работы своего ноута ...До сих пор вирусы были для меня легендой типа того, что если я не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
36
Закрытая тема Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru