- Как создавать папки по дате в Linux?
- 2 ответа 2
- Команды управления файлами и папками в Linux
- Перемещение в директориях Linux
- Просмотр файлов и папок в Linux
- Создание папок в Linux
- Удаление файлов и папок
- Ошибка папки при удалении в Linux
- Удалить всё внутри папки
- Удаление файлов из директории Linux без удаления самой папки
- Удалить все файлы кроме одного конкретного файла
- Управление файлами в Linux
- Поиск файлов
- Замена текста и данных в файлах Linux
- Как прервать выполнение команды
- [ ls ] Как узнать время создания файла?
- Re: [ ls ] Как узнать время создания файла?
- [ ls ] Как узнать время создания файла?
- [ ls ] Как узнать время создания файла?
- Re: [ ls ] Как узнать время создания файла?
- [ ls ] Как узнать время создания файла?
- [ ls ] Как узнать время создания файла?
- Re: [ ls ] Как узнать время создания файла?
- [ ls ] Как узнать время создания файла?
- [ ls ] Как узнать время создания файла?
- [ ls ] Как узнать время создания файла?
- Re: [ ls ] Как узнать время создания файла?
- [ ls ] Как узнать время создания файла?
- Команды Linux для работы с файлами
- 1. ls — просмотр содержимого папки
- 2. cd — изменить папку
- 3. rm — удалить файлы
- 4. rmdir — удалить папку
- 5. mv — перемещение файлов
- 6. cp — копирование файлов
- 7. mkdir — создать папку
- 8. ln — создание ссылок
- 9. chmod — изменить права
- 10. touch — создать файл
- 11. mc
- Выводы
Как создавать папки по дате в Linux?
Есть ли другой короткий / более простой и умный способ сделать следующее в Linux?
Мне нужно использовать crontab для создания папок каждый день и каждый месяц внутри /home /abcd /dammi, /home /abcd /harrami, /home /wxyz /dammi и /home /wxyz /harrami. Кто-нибудь может мне с этим помочь?
2 ответа 2
Как насчет следующего:
Ну, конечно, вы также можете сделать это без переменных DATE_DIR и DAY_DIR но этот алгоритм гарантирует, что дата не генерируется много раз, что быстрее, и гарантирует, что дата будет одинаковой для всех пользователей (даже если вы запустите ее до полуночи и последний каталог создается после полуночи).
Возможно, вам также придется подумать об улучшении сценария с помощью chown, чтобы пользователи могли писать во вновь созданные каталоги.
Редактировать: Если вы хотите создать одинаковую структуру папок в двух подпапках /home вы можете объединить скрипт RolKau с моим:
Edit2: я предполагаю, что список пользователей содержит имена пользователей. Итак, давайте расширим скрипт, чтобы правильно изменить владельца каталога:
Edit3: чтобы сменить владельца, я думаю, что самый простой способ — это прочитать владельца из каталога в /home/ /
Конечно, вы можете использовать stat, чтобы прочитать владельца; но это немного медленнее, чем просто чтение из переменной — как вы и просили:
Edit4: альтернативное решение, использующее жестко закодированное членство в группе.
Edit5: глядя на ваш первоначальный пост, желаемая структура может немного отличаться. Я предполагаю, что вы хотите иметь подкаталог в /home для каждой группы и добавлять только пользовательские каталоги для каждого члена группы. Итак, поехали:
Если пользователь является членом нескольких групп, просто укажите его несколько раз в USER_LIST.
Источник
Команды управления файлами и папками в Linux
Список полезные команд для управления папками в Linux системах. Рекомендации подходят в том числе и для операционной системы Mac OS.
Ниже приводится список команд для выполнения наиболее часто встречающихся задач.
Перемещение в директориях Linux
Перейти в корневую папку диска:
Перейти в конкретную папку:
/home/folder — то место куда следует перейти
Посмотреть всё что внутри папки (посмотреть права):
Как установить редактор Midnight Commander
Для запуска редактора ввести:
Просмотр файлов и папок в Linux
Более точная и подробная статья по поиску занятого места на диске.
Проверяем свободное место на всём диске:
Узнаём какие файлы хранятся в директории
Список папок с занимаемыми размерами в корне сервера (сортировка директорий по алфавиту):
Выводит список директорий и файлов построчно, сортируя их по возрастанию размера, а также показывает права доступа, размер файлов и дату изменения:
Показывает размер и имена директорий и файлов (сортировка по размеру). В примере сортировка по размеру директории var.
Ещё одна команда (показывает в мб) сортирует по размеру (в данном случае сортировка каталога с логами):
Создание папок в Linux
Создать папку с названием folder:
Удаление файлов и папок
Обычное удаление файла:
Если с помощью обычного rm попробовать удалить папку в которой находятся файлы, появится ошибка. Для удаление папок используем другую команду:
Добавляем атрибут -p для удаление пустых папок по всему пути. Будут удалены все три папки указанные ниже, если они не содержат файлов:
Ошибка папки при удалении в Linux
Иногда при удалении папки в Linux пишется ошибка:
При этом зайти в неё тоже не удаётся, пишется ровно противоположное:
Также встречаются ошибки:
Удалить эту капризную папку (без предупреждений) поможет следующая команда:
где
-r – команда пройтись по всем папкам и файлам и попытаться удалить каждую из них
-f – удалить без подтверждения
Удалить всё внутри папки
Зайти внутрь папки:
Удалить все в этой папке:
Удаление файлов из директории Linux без удаления самой папки
Удаляем всё содержимое из папки files, которая находится по этому пути – /home/user/files/. Специальные ключи в команде ускоряют удаление содержимого с минимальной нагрузкой на сервер.
Удалить все файлы кроме одного конкретного файла
Удалит все файлы, кроме одного. Эта команда не удаляет папки.
Управление файлами в Linux
Создание пустого файла
Просмотр содержимого файла:
где /etc/file.php — путь к файлу.
Для редактирования файлов должен быть установлен редактор nano.
^ Находиться надо в родительской категории, где есть папки otkuda и kuda.
Копировании папки в текущей директории:
Назначаем права доступа:
Поиск файлов
Есть 2 основные команды для поиска файлов, это find и locate:
-name «имя файла» -print
Минус перед словом name означает, что не нужно выводить на экран всю процедуру поиска.
Замена текста и данных в файлах Linux
Для взаимодействия с текстом внутри файлов есть команда sed. Команд множество, но чаще всего может понадобится команда по замене определенного текста в конкретном файле.
Заменяет в файле file.txt все слова «odin» на слова «dva».
Иногда требуется раскомментировать какую-то строчку в файле и для этого не обязательно открывать файл и редактировать его. Достаточно знать данные в нём, которые нужно раскомментировать.
где «^» — означает начало строки, # — символ, отвечающий за разрешение/запрещение чтения команд определенного языка программирования в выполняющем для этого файле.
Как прервать выполнение команды
Когда вы запустили команду в терминале и хотите её прервать достаточно нажать:
Источник
[ ls ] Как узнать время создания файла?
Я в ступоре. Мне нужно сделать простое действие — распечатать список файлов, чтобы рядом с именем файла показывалось время его создания.
Документация по ls написана для экстрасенсов, а я им не являюсь.
Re: [ ls ] Как узнать время создания файла?
Файловые системы не хранят время создания файла
есть mtime, atime, ctime
- m — modify
- a — access
- c — change (metadata)
[ ls ] Как узнать время создания файла?
> Файловые системы не хранят время создания файла
Вот так сюрприз. Что, интересно, мешает хранить время создания?
[ ls ] Как узнать время создания файла?
>Что, интересно, мешает хранить время создания?
Re: [ ls ] Как узнать время создания файла?
Что, интересно, мешает хранить время создания?
А зачем? За последние 10 лет не припомню ни одного случая, когда бы это понадобилось.
Сегодня при наличии рабочего inotify можно вести отдельный лог создания фалов (IN_CREATE File/directory created in watched directory)
[ ls ] Как узнать время создания файла?
>А зачем? За последние 10 лет не припомню ни одного случая, когда бы это понадобилось.
Как только у нас чего нету мы говорим: «А зачем?». 🙂
[ ls ] Как узнать время создания файла?
Re: [ ls ] Как узнать время создания файла?
Как только у нас чего нету мы говорим: «А зачем?». 🙂
Может потому и нет, что незачем? Я потому и привел довод, что у меня за 10 лет админства не было такой потребности.
[ ls ] Как узнать время создания файла?
>Может потому и нет, что незачем? Я потому и привел довод, что у меня за 10 лет админства не было такой потребности.
Да это трололо было. ИМХО, ты прав, для меня так же creation time = modification time
[ ls ] Как узнать время создания файла?
Ну это естественное желание человека — знать когда файл или каталог был создан. Например, в каталоге /home ты бы мог узнать, когда какой пользователь был создан. Или по дате создания конфигурационного файла какого-нить сервиса узнать, стоял он уже в системе на какой-то момент или нет.
[ ls ] Как узнать время создания файла?
> А зачем? За последние 10 лет не припомню ни одного случая, когда бы это понадобилось.
А время модификации метаданных, хоть раз понадобилось? ИМХО, это еще более бесполезная вещь, чем время создания. И тем не менее оно есть.
Re: [ ls ] Как узнать время создания файла?
А время модификации метаданных, хоть раз понадобилось? ИМХО, это еще более бесполезная вещь, чем время создания. И тем не менее оно есть.
когда был сделан chmod/chown данному файлу весьма интересный вопрос
[ ls ] Как узнать время создания файла?
> когда был сделан chmod/chown данному файлу весьма интересный вопрос
А зачем? За несколько лет не припомню ни одного случая, когда бы это понадобилось.
Источник
Команды Linux для работы с файлами
Чтобы быть профессионалом в использовании терминала Linux, нужно научится управлять файлами через терминал. Это чуть ли не основа всего, включая редактирование конфигурационных файлов, сборку программ, администрирование и множество других вещей. Просмотр содержимого папок, переход между папками, создание и удаление файлов — это необходимая база, для удобной работы в терминале.
В этой статье мы рассмотрим самые часто используемые команды Linux для работы с файлами и каталогами, после их освоения терминал больше не будет казаться таким непонятным и объемлемым. Вот какие команды будут нас сегодня интересовать:
- ls — список файлов в директории;
- cd — переход между директориями;
- rm — удалить файл;
- rmdir — удалить папку;
- mv — переместить файл;
- cp — скопировать файл;
- mkdir — создать папку;
- ln — создать ссылку;
- chmod — изменить права файла;
- touch — создать пустой файл.
А теперь перейдем к подробному рассмотрению всех этих команд.
1. ls — просмотр содержимого папки
Команда ls позволяет вывести список файлов заданной папки, по умолчанию, будет выведен список файлов текущей папки:
Вы можете вывести список файлов из всех подкаталогов рекурсивно, для этого используйте опцию -R:
Чтобы вывести список файлов нужной папки, вы можете передать ее адрес утилите, например, /home:
Чтобы получить больше информации и вывести все имена файлов в виде списка используйте опцию -l:
2. cd — изменить папку
Команда cd позволяет изменить текущую папку на другую. По умолчанию, текущей считается домашняя папка, например, cd Desktop меняет папку на рабочий стол, если вы выполните ее из домашнего каталога:
Вы также можете указать полный путь к папке:
Команда cd .. переходит в папку, которая находится выше на одну в файловой системе:
Вы также можете вернуться в предыдущую рабочую папку:
3. rm — удалить файлы
Команда rm позволяет удалить файл. Будьте очень осторожны с ней, она не будет спрашивать подтверждения:
Например, rm file удалит файл с именем file, который находится в текущей папке. Как и в предыдущих вариантах, вы можете указать полный путь к файлу linux. Например:
Если вы хотите удалить папку, то нужно использовать опцию -r. Она включает рекурсивное удаление всех файлов и папок на всех уровнях вложенности:
rm -r /home/user/photo/
Будьте осторожны, потому что эта команда удаляет файлы безвозвратно.
4. rmdir — удалить папку
Команда rmdir позволяет удалить пустую папку. Например, команда rmdir directory удалит папку directory, которая находится в текущей папке:
Если вам нужно удалить папку с файлами, то нужно использовать утилиту rm вместе с опцией -r.
5. mv — перемещение файлов
Команда mv перемещает файл в новое место. Она также может использоваться для переименования файлов. Например, mv file newfile переименует файл file в newfile:
mv file newfile
Чтобы переместить файл в другую папку нужно указать путь к ней, например, переместим файл file в папку /home/user/tmp/
mv file /home/user/tmp/
6. cp — копирование файлов
Эта cp и mv — это похожие команды linux для работы с файлами. Они работают аналогичным образом, только исходный файл остается на своем месте.
cp file newfile
Вы также можете рекурсивно скопировать всю папку с помощью команды cp -r. Эта команда скопирует всю папку вместе со всеми файлами и вложенными папками в новое место. Например, скопируем папку /etc/:
cp -r /etc /etc_back
7. mkdir — создать папку
Команда mkdir позволяет создать новую папку mkdir test создаст папку в текущем каталоге:
Если нужно создать папку в другом каталоге, укажите полный путь к нему:
8. ln — создание ссылок
Утилита ln позволяет создавать жесткие и символические ссылки на файлы или папки. Для создания символической ссылки используется опция -s. Например, вы создадим ссылку на папку с загрузками:
ln -s /home/user/Downloads/ /home/user/test/
Для создания жесткой ссылки никаких опций задавать не нужно:
ln /home/user/Downloads/ /home/user/test/
9. chmod — изменить права
chmod позволяет изменить права доступа к файлам. Например, chmod +x script.sh добавляет флаг исполняемости к файлу script.sh:
chmod +x script.sh
Чтобы убрать флаг исполняемый используйте опцию -x:
chmod -x script.sh
Подробнее о том, как работают разрешения для файлов смотрите в статье права доступа к файлам в Linux.
10. touch — создать файл
Команда touch создает пустой файл. Например, touch file создаст пустой файл в текущей папке с именем file:
Для создания файлов через терминал существует еще несколько команд, они рассмотрены в статье как создать файл в linux.
11. mc
Работа с файлами Linux через терминал может выполняться не только с помощью обычных консольных команд, каждая из которых выполняет только определенное действие. Вы можете использовать полнофункциональный файловый менеджер с псевдографическим интерфейсом на основе ncurses. Midnight Commander — это файловый менеджер, который можно использовать прямо в терминале. Для установки mc в Ubuntu выполните:
sudo apt install mc
После завершения установки достаточно выполнить команду mc:
Используйте клавиши со стрелками для перемещения по файлах, Tab для перехода на другую панель, Alt+1 для просмотра справки и Alt+2 для вывода меню:
Если терминальное окружение поддерживает мышь, то вы можете ее использовать в Midnight Commander.
Выводы
В этой статье мы рассмотрели как выполняется работа с файлами и каталогами в linux, с помощью терминала. Когда вы освоите все эти команды, вы сможете сделать большинство основных действий в терминале. А как часто вы пользуетесь терминалом? Используете его для работы с файлами? Напишите в комментариях!
Источник